关注各种高级语言虚拟机(high-level language virtual machine,HLL VM)的设计与实现,泛化至各种高级语言的运行时的设计与实现,也会涉及动态编译、GC、动态语言的编
来源:互联网 发布:wap淘宝流量来源 编辑:程序博客网 时间:2024/06/05 11:55
关注各种高级语言虚拟机(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的动态即时编译器,非常非常强……
我会开一些帖子作为资料堆积用,例如书籍、论文、教程、文章及相关链接收集。请不要以讨论方式回复这些资料堆积帖,以便于保持资料的“整洁”;不过可以另外开对应的讨论帖放讨论。
也欢迎大家开讨论帖对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的动态即时编译器,非常非常强……
阅读全文
0 0
- 关注各种高级语言虚拟机(high-level language virtual machine,HLL VM)的设计与实现,泛化至各种高级语言的运行时的设计与实现,也会涉及动态编译、GC、动态语言的编
- 高级语言(High-level programming language)
- 各种编程语言铺天盖地,有函数式语言、面向对象的语言、动态语言、编译语言
- 动态语言和虚拟机实现, 暨介绍一下我设计的一个新型的动态语言(1)
- 动态语言和虚拟机实现, 暨介绍一下我设计的一个新型的动态语言(2)
- 动态语言和虚拟机实现, 暨介绍一下我设计的一个新型的动态语言(3)
- 各种语言实现的进度条
- Sample语言编译与运行及简单虚拟机器的设计实现
- 高级语言与低级语言的区别
- 一个脚本设计语言的设计与实现
- L语言编译器的设计与实现之设计篇
- 高级语言中各种数据结构在内存中是如何存储的?
- Linux:Shell语言实现《考试控制系统的设计与实现》
- 动态语言与静态语言的比较
- 静态语言与动态语言的区别
- 静态语言与动态语言的区别
- 高级语言实现文件感染的方法
- 静态与动态顺序表操作的C语言实现
- 嵌套路由中子路由中的path
- RBTools Documentation 0.8 alpha 0 (dev) documentation
- 使用django框架搭建web应用
- Xcode常用快捷键与技巧分享
- 最新苹果手机使用iTunes换手机铃声2017
- 关注各种高级语言虚拟机(high-level language virtual machine,HLL VM)的设计与实现,泛化至各种高级语言的运行时的设计与实现,也会涉及动态编译、GC、动态语言的编
- JavaMail实现收发邮件——(一)相关概念概述
- OpenAI gym
- R3下 DOS路径转化为NT路径
- BeanUtils工具 动态bean
- 学习head first 设计模式之策略模式
- IOS 拍照,系统相册 拿照片地理位置,还有修改时间最新时间
- spark中遇到的数据倾斜问题
- MySQL数学函数