关注各种高级语言虚拟机(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的动态即时编译器,非常非常强……

关注各种高级语言虚拟机(high-level language virtual machine,HLL VM)的设计与实现,泛化至各种高级语言的运行时的设计与实现,也会涉及动态编译、GC、动态语言的编相关推荐

  1. PHP7虚拟机(PHP 7 Virtual Machine)(转载)

    2022年11月1日15:59:57 官方地址:https://www.npopov.com/2017/04/14/PHP-7-Virtual-machine.html 转载:https://www. ...

  2. Java 虚拟机(JVM (Java Virtual Machine))

    1.Java 程序的编译和运行过程 如下图所示: 2.Java 运行时内存区域类型 Java 内存区域图如下: JVM 所管理的内存分为以下几个运行时数据区:方法区.Java 虚拟机栈.本地方法栈.J ...

  3. 查看虚拟机cpu型号_虚拟机管理器(Virtual Machine Manager)简介 | Linux 中国

    virt-manager 为 Linux 虚拟化提供了全方位的选择.-- Alan Formy-duval 在我关于 GNOME Boxes 的系列文章中,我已经解释了 Linux 用户如何能够在他们 ...

  4. java 动态编译 canino_java动态编译

    在HotSpot虚拟机中,有两个技术是至关重要的,即动态编译(Dynamic compilation)和Profiling. HotSpot是如何动态编译Javad的bytecode呢?Java by ...

  5. Qt 4.7.4 完美动态编译发布动态调试,以及静态编译发布

    首先是准备工作,去QT主页下载独立的QT类库安装包以及完整QT SDK安装包,还有QT Creator for windows 版 下载地址:http://qt.nokia.com/downloads ...

  6. java 动态编译_Java动态编译

    概述: Java的动态编译就是在运行期直接编译.java文件,执行.class,并且能够获得相关的输入输出,甚至还能监听相关的事件. 步骤: 1.创建或自动生成.java文件 2.调用JavaComp ...

  7. 通过自定义类加载器进行动态编译与动态实现接口

    两种动态加载类的方法 1.       使用java.lang.Class.forName(fullClassName ). 2.       使用自定义类加载器. 这里看看如何通过自定义加载器来进行 ...

  8. c#动态编译并动态生成dll

    /// <summary>/// 动态编译并执行代码/// </summary>/// <param name="code">代码</pa ...

  9. java 反射 动态编译_动态编译java源代码和反射调用问题

    我从教程中得到了以下代码: package com.tom.labs; import java.io.IOException; import java.lang.reflect.Method; imp ...

最新文章

  1. 深入理解Spring系列之六:bean初始化
  2. 使用Filezilla Server配置FTP服务器
  3. VTK:PolyData之MeshQuality
  4. 【python数字信号处理】——线性卷积
  5. mysqlslap详解--MySQL自带的性能压力测试工具(转)
  6. 用python可以解决什么问题_学 Python 能帮你解决什么问题 ?
  7. SQL Server 数据库中的几个常见的临界值
  8. WMI 查询分析工具更新
  9. MQ 是什么?为什么使用?
  10. 边界值分析法用例设计
  11. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)RC-u4 攻略分队
  12. 三年高级开发,六年成为架构师,到CTO我用了12年
  13. 第43届ACM icpc亚洲区域赛焦作站感想
  14. DSP之TMS320F28335学习总结与笔记(二)————ADC模块
  15. 【Go语言学习】安装与配置
  16. 新版Q绑查询HTML源码
  17. 文献记录(part107)--Detecting Meaningful Clusters From High-Dimensional Data ...
  18. 云服务ftp服务器搭建_如何在阿里云服务器搭建FTP服务器,在本地电脑连接并操作...
  19. 立体几何中常见的建系类型汇总
  20. Piwik网站流量访问统计系统

热门文章

  1. Thinkpad T410安装Windows Server 2008 R2
  2. JAVA 攻城狮 第十六天
  3. Linux 文件管理 : chattr lsattr 命令详解
  4. android短信验证码方案,Android开发之属于你的短信验证码(一)
  5. Latex 中{itemize}的使用(转自Lavande de mer)
  6. QT DLL库报错:file not recognized: File format not recognized
  7. UML-----UML构成
  8. biginteger 原理_BigInteger详解
  9. Web和HTTP《计算机网络——自顶向下方法(James F. Kurose, Keith W. Rose)》
  10. 计算机网络————网络层