JavaShuo
欄目
標籤
高級語言虛擬機(HLL VM)的設計與實現
時間 2019-11-18
標籤
高級語言
虛擬機
hll
設計
實現
欄目
Java
简体版
原文
原文鏈接
關注各類高級語言虛擬機(high-level language virtual machine,HLL VM)的設計與實現,泛化至各類高級語言的運行時的設計與實現,也會涉及動態編譯、GC、動態語言的編譯等話題。總之大方向是高級語言的語義的實現方式就 對了 >_<
我會開一些帖子做爲資料堆積用,例如書籍、論文、教程、文章及相關連接收集。請不要以討論方式回覆這些資料堆積帖,以便於保持資料的「整潔」;不過能夠另外開對應的討論帖放討論。
也歡迎你們開討論帖對HLL VM的話題熱烈討論。請你們告訴我大家都對HLL VM的什麼方面感興趣 ^_^
也能夠發娛樂帖,各類稀奇古怪的與HLL VM相關的代碼之類的能夠放在這個分類下。
須要圈子管理員權限的同窗請PM我,有興趣幫我一塊兒收集和整理HLL VM相關資料那是最好不過了。
討論範圍包括但不限於:
●
Java Virtual Machine
-
Oracle(Sun) HotSpot VM
(
OpenJDK
: GPLv2+CE)
--
Da Vinci Machine
--
JSR 292 Backport
--
UltraViolet™ Virtual Machine
-
Azul HotSpot VM
-
IBM J9
-
Oracle JRockit
-
Apache Harmony
(Apache License v2)
-
Jikes RVM
(EPLv1)
-
Kaffe
(GPL)
-
SableVM
(LGPLv2.1)
-
Oracle(Sun) CLDC HotSpot Implementation
(GPLv2)
-
Oracle(Sun) Project Monty virtual machine
-
PSPKVM
(GPL)
-
Oracle(Sun) Squawk VM
(GPLv2)
-
Oracle(Sun) JavaCard VM
-
Oracle(Sun) Maxine VM
(GPLv2)
-
Oracle(Sun) Mackinac
-
Metacircular Research Platform (MRP)
(Apache License, EPLv1, GPLv2+CE)
-
Moxie JVM
(Apache License v2)
-
JamVM
(GPL) (
Sourceforge Project Page
)
-
JamaicaVM
-
cacaovm
(GPL)
-
Jelatine JVM
(GPLv3)
-
NanoVM
(GPL)
-
Open Mika
(BSD)
- Wonka VM
-
Aegis VM
(LGPL)
-
joeq
(GPL)
-
kissme
(GPL)
-
VMKit
(University of Illinois Open Source License)
-
Jupiter
-
K virtual machine
-
NSIcom CrE-ME
-
LaTTe
(BSD)
- Esmertec JBed
- Symantec JIT
- TowerJ DynaFlex
- Microsoft Java Virtual Machine / jview
- HP Chai VM
- Oracle OJVM
-
Oracle JVM
(考據中,不知道這個跟OJVM是什麼關係)
-
Mozilla ElectricalFire
(Netscape PL)
- MachJ
-
JanosVM
-
Xam
(GPLv3)
- E-bunny
- Jeode EVM
-
shuJIT
- Inprise "javacomp" JIT
-
OpenJIT
(BSD)
- TYA
-
Open Runtime Platform (ORP)
(Intel Open Source License)
-
Jaos
-
AromaVM
- Sun Exact VM
-
Sun JavaInJava
-
IKVM.NET
(custom BSD-like)
-
TinyVM
(MPLv1)
-
Ovm
(簡介)
(New BSD)
-
GCJ
(GPL)
-
Excelsior JET
-
RoboVM
(
license
)
-
JC Virtual Machine
(LGPL)
-
MiniJavaVM
-
ArmJVM
-
Rava
(Ruby License)
-
RUVA
(Ruby License)
-
Japhar
-
Joker-vm
(GPL)
-
Jato
(GPLv2+LE)
-
Hornet
(BSD)
-
Another Open JavaCard Virtual Machine
(GPL)
-
Sun Spotless JVM
- Nemesis JVM
-
nanokit
-
Aplix JBlend
- Orto JVM
-
Avian
(ISC License)
Github連接
-
JnJVM
-
Doppio
(MIT License) Java on CoffeeScript
-
Mysaifu JVM
-
node-jvm
-
Fiji
http://rtjava.blogspot.com/2011/07/fijivm-real-time-java-vm-overview.html
●
Google Dalvik VM
(Apache License v2)
●
NestedVM
(Apache License v2)
●
Harissa
●
DynamicJava
(BSD)
這是個Java實現的Java源碼解釋器,而不是JVM規範定義的那類JVM
●
FIJI ForthIsh Java Interpreter
(GPL)
●
Eve Virtual Machine
●
Parrot VM
(Artistic License 2.0)
●
Common Language Infrastructure (CLI)
- Common Language Runtime (CLR) (.NET Framework)
open sourcing!
- .NET Compact Framework
-
.NET Micro Framework
(Apache License v2)
-
Mono
(LGPL/GPL/X11)
-
DotGNU Portable .NET
(GPL)
-
Shared Source Common Language Infrastructure (SSCLI)
(Microsoft Shared Source Common Language Infrastructure license)
- Open Runtime Platform (ORP) (Intel Open Source License)
- StarJIT
-
ILDJIT
(GPL)
●
Dynamic Language Runtime (DLR)
(Ms-PL)
●
Dis Virtual Machine
●Python
-
Python (CPython)
(PSFL)
-
PyPy
(MIT)
-
Pyston
(Apache License v2)
-
Jython
(PSFLv2)
-
IronPython
(Ms-PL)
-
Unladen Swallow
(Apache License v2)
-
Pynie
-
Psyco
(MIT)
-
Stackless Python
(PSFL)
-
tinypy
(MIT)
-
python-on-a-chip (p14p)
(GPLv2)
●Ruby
-
Ruby 1.8.x (MRI)
(Ruby License)
-
Ruby 1.9
(
YARV
) (Ruby License)
-
Rubinius
(BSD)
-
MacRuby
(Ruby License)
-
JRuby
(CPL/GPL/LGPL)
-
IronRuby
(Ms-PL)
-
MagLev
(MIT)
-
Ruby Enterprise Edition
-
BlueRuby
-
The Ludicrous JIT Compiler
(BSD)
-
XRuby
(Apache License v2)
-
Cardinal
-
Ruby.NET
(new BSD)
-
HotRuby
(Ruby License)
-
tinyrb
(Ruby License)
-
mirc
●JavaScript
-
Google V8
(new BSD)
- Mozilla
JägerMonkey
/
TraceMonkey
/
Tamarin
/
SpiderMonkey
(MPL 1.1/GPL 2.0/LGPL 2.1)
- Apple
Nitro (SquirrelFish Extreme)
/
SquirrelFish
/
JavaScriptCore
(LGPL)
-
KDE KJS
(LGPLv2)
-
Opera Carakan
-
DMDScript
-
Managed JScript
- JScript
- JScript 9 "Chakra"
-
Narcissus
-
BESEN
(OwnLicense+AGPLv3)
-
Jurassic
(Ms-PL)
-
IronJS
(Apache License v2)
-
lv5
-
Tachyon
-
Ejscript
(
Embedthis Open Source Software License
)
- Qt v4
-
MuscalietJS (mcjs)
: An Extensible Portable Layered JavaScript Engine
●ActionScript 3
-
Adobe AVM2
-
Lightspark
-
JITB
●
Groovy
(BSD)
●Perl
-
Perl
-
Pugs
-
Rakudo
-
MoarVM
(Rakudo的新VM)
- Tycho (by Matthew Wilson)
●PHP
-
PHP
(PHP License v3.01)
-
HipHop VM
(PHP and Zend License)
-
HippyVM
(
Github
)(MIT License)
-
Phalanger
(SS-PL)
-
Zend
-
Quercus
●
Smalltalk
- Smalltalk
-
GNU Smalltalk
(GPL)
-
Squeak
(SqL) http://www.squeakvm.org/index.html
-
GemStone/S
-
Pharo
(MIT/Apache Lisence)
-
Strongtalk
(new BSD)
-
Cog
(MIT License)
-
Jtalk
(MIT License)
●
Self
- Self
-
Klein Metacircular Virtual Machine Kit
●
Newspeak
(Apache License v2/SqL/MIT)
●
Erlang
(MPL)
- BEAM
-
Erjang
●Prolog
●
Mercury
●
Pure
●BASIC
●COBOL
●
Factor
(BSD)
●Neko
-
Neko VM
(LGPL)
●
Potion
(MIT)
●
Forth
●Scheme
-
Ikarus
(GPLv3)
-
WeScheme
●Common Lisp
●
HLVM
(BSD)
●
Ela
●
SQLite Virtual Database Engine
被稱爲「編譯型語言」的解釋器實現:
●C
-
Ch
●C++
-
Cint
嗯……
Haskell
、
OCaml
之類的語言也是有解釋器實現的,也算在內。
說來OCaml的解釋器是direct-threaded的,這個確定得拿來講說。在Forth社區之外確實討論各類threaded技巧的氛圍不怎麼濃。
還有些有趣的語言也是用解釋器實現的。
Fortress
也有
解釋器
,有機會也要拿來挖掘挖掘。
經常使用做嵌入式腳本的:
●Lua
-
Lua
(MIT)
-
LuaJIT
(MIT/X)
Terra
http://terralang.org
●
Squirrel
(zlib/libpng)
●
AngelScript
(zlib)
●
JewelScript
(zlib/libpng)
●
Monster Script
一些遊戲引擎裏的腳本引擎:
●
吉里吉里2
- TJS2 (GPLv2)
●
吉里吉里3
-
Risse
●RealLive
- RealLive
-
rlvm
(GPLv3)
-
xclannad
●AliceSoft
- System 3.x
- System 4.x
●NScripter
-
NScripter
-
ONScripter
●
YU-RIS
●
Hot Soup Processor (HSP)
●Stuff スクリプトエンジン
●
Wintermute Engine (WME)
●
Unreal
- UnrealScript
●
Torque Game Engine
- TorqueScript
●
Z Machine
有些EL(表達式語言,expression language)的實現也能夠拿來討論:
●
MVEL
●
janino
(New BSD)
●
Unified Expression Language (JSR 245)
-
JUEL
- Resin EL
●JSP 2.0 EL
-
Commons EL
●
JEXL
●JEval
●SpEL
●OGNL
●IK Expression
●
Aviator
●
JSEL
一些模板引擎裏其實也有樹遍歷式的解釋器
●
Velocity
(Apache License v2)
雖然自身不是HLL VM,但常常被用於HLL VM實現的:
●
Low Level Virtual Machine (LLVM)
(University of Illinois Open Source License)
-
llvm-py
年代久遠的虛擬機:
●SECD
動態編譯的先驅:
●Oberon
還有像Half-Life 2的SourceMod插件裏也有JIT…SourcePawn?
看這裏
http://www.bailopan.net/blog/?p=73
各類機器像是遊戲機的模擬器裏天然也有高效的編譯器或者說binary translator的實現
●
Dolphin Emulator
一些JIT庫:
●
Xbyak
(BSD)
●
asmjit
(MIT)
●
jitasm
(BSD)
●
libjit
(LGPLv2.1)
-
libjit-linear-scan-register-allocator
(LGPL)
一些GC庫:
●
Boehm GC
●
Qish
(LGPL)
生成解釋器的工具:
●
Vmgen
●
Generic Interpreter
下面這個有點離題,但很是強悍:
●
Valgrind
雖然被許多人認爲是內存訪問的檢查工具,但其實是x86-to-x86的動態即時編譯器,很是很是強……
相關文章
1.
VM 虛擬機與linux虛擬機的網絡通信設置
2.
Sample語言編譯與運行及簡單虛擬機器的設計實現
3.
vm虛擬器與主機ping通與vm虛擬器聯網設置
4.
VM虛擬機與docker
5.
VM虛擬機
6.
虛擬機VM
7.
Docker與VM虛擬機的區別
8.
Docker 與VM虛擬機的區別
9.
機器語言到高級語言
10.
VM虛擬機橋接實現VM和實體機通信的三種方法
更多相關文章...
•
XML DOM 高級
-
XML 教程
•
Web 創建設計
-
網站建設指南
•
☆基於Java Instrument的Agent實現
•
漫談MySQL的鎖機制
相關標籤/搜索
vm虛擬機
虛擬現實
高級語言
hll
虛擬機
JVM虛擬機
java虛擬機
Swift語言實現
C語言實現
內核設計與實現
Java
R 語言教程
Docker教程
Docker命令大全
設計模式
計算
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
升級Gradle後報錯Gradle‘s dependency cache may be corrupt (this sometimes occurs
2.
Smarter, Not Harder
3.
mac-2019-react-native 本地環境搭建(xcode-11.1和android studio3.5.2中Genymotion2.12.1 和VirtualBox-5.2.34 )
4.
查看文件中關鍵字前後幾行的內容
5.
XXE萌新進階全攻略
6.
Installation failed due to: ‘Connection refused: connect‘安卓studio端口占用
7.
zabbix5.0通過agent監控winserve12
8.
IT行業UI前景、潛力如何?
9.
Mac Swig 3.0.12 安裝
10.
Windows上FreeRDP-WebConnect是一個開源HTML5代理,它提供對使用RDP的任何Windows服務器和工作站的Web訪問
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
VM 虛擬機與linux虛擬機的網絡通信設置
2.
Sample語言編譯與運行及簡單虛擬機器的設計實現
3.
vm虛擬器與主機ping通與vm虛擬器聯網設置
4.
VM虛擬機與docker
5.
VM虛擬機
6.
虛擬機VM
7.
Docker與VM虛擬機的區別
8.
Docker 與VM虛擬機的區別
9.
機器語言到高級語言
10.
VM虛擬機橋接實現VM和實體機通信的三種方法
>>更多相關文章<<