码迷,mamicode.com
首页 > 编程语言 > 详细

各种高级语言虚拟机

时间:2015-04-04 12:06:24      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:

RednaxelaFX 2010-01-06
关注各种高级语言虚拟机(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 

嗯……HaskellOCaml之类的语言也是有解释器实现的,也算在内。 
说来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的动态即时编译器,非常非常强……

各种高级语言虚拟机

标签:

原文地址:http://www.cnblogs.com/01picker/p/4391714.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!