码迷,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 

嗯……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的动态即时编译器,非常非常强……

各种高级语言虚拟机

标签:

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

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