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.
微软准备淘汰 SHA-1
2.
Windows Server 2019 Update 2010,20H2
3.
Jmeter+Selenium结合使用(完整篇)
4.
windows服务基础
5.
mysql 查看线程及kill线程
6.
DevExpresss LookUpEdit详解
7.
GitLab简单配置SSHKey与计算机建立连接
8.
桶排序(BucketSort)
9.
桶排序(BucketSort)
10.
C++ 桶排序(BucketSort)
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
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和实体机通信的三种方法
>>更多相关文章<<