List of Application Virtual Machine Implementations
In addition to the portable virtual machines described above, virtual machines are often used as an execution model for individual scripting languages, usually by an interpreter. This table lists specific virtual machine implementations, both of the above portable virtual machines, and of scripting language virtual machines.
Virtual machine | Languages | Comments | Interpreter | JIT | Implementation Language | SLoC |
---|---|---|---|---|---|---|
Adobe Flash Player (aka Tamarin) | ActionScript, SWF (file format) | interactive web authoring tool. bytecode is named "ActionScript Byte Code (.abc)" | Yes | Yes | C++ | 135k (initially released) |
BEAM | Erlang, Reia, Lisp Flavoured Erlang, Elixir | There exists a native-code compiler, HiPE. | Yes | No | C | 247k |
Clipper p-code | Clipper, Harbour | plankton, HVM | Yes | No | C | |
Dis (Inferno) | Limbo | Dis Virtual Machine Specification | Yes | Yes | C | 15k + 2850 per JIT arch + 500 per host OS |
DotGNU/Portable.NET | CLI languages including: C# | Clone of Common Language Runtime | No | Yes | C, C# | |
Forth | Forth | Features are simplified, usually include assembler, compiler, text-level and binary-level interpreters, sometimes editor, debugger and OS. Compilation speeds are >20 SKLOC/S and behave much like JIT. | Yes | No | Forth, Forth Assembler | 2.8K to 5.6K; advanced, professional implementations are smaller. |
Glulx | Glulx, Z-code | |||||
Icon | Icon | |||||
JVM | Java, Jython, Groovy, JRuby, C, C++, Clojure, Scala and several others | Reference implementation by Sun ; OpenJDK: code under GPL ; IcedTea: code and tools under GPL | Yes | Yes | JDK, OpenJDK & IcedTea with regular JIT : Java, C, ASM ; IcedTea with the "Zero" JIT : Java, C | JVM is around 6500k lines; TCK is 80k tests and around 1000k lines |
LLVM | C, C++, Objective-C, Ada, and Fortran | MSIL, C and C++ output are supported. ActionScript Byte Code output is supported by Adobe Alchemy. bytecode is named "LLVM Bytecode (.bc)". assembly is named "LLVM Assembly Language (*.ll)". | Yes | Yes | C++ | 811k |
Lua | Lua | Yes | LuaJIT | C | 13k + 7k LuaJIT | |
MMIX | MMIXAL | |||||
Mono | CLI languages including: C#, VB.NET, IronPython, IronRuby, and others | clone of Common Language Runtime. | Yes | Yes | C#, C | 2332k |
Oz | Oz, Alice | |||||
NekoVM | currently Neko and haXe | Yes | x86 only | C | 46k | |
O-code machine | BCPL | |||||
p-code machine | Pascal | UCSD Pascal, widespread in late 70s including Apple II | ||||
Parrot | Perl (6 & 5), NQP-rx, PIR, PASM, PBC, BASIC, bc, C, ECMAScript, Lisp, Lua, m4, Tcl, WMLScript, XML, and others | Yes | Yes | C, Perl | 111k C, 240k Perl | |
Perl virtual machine | Perl | op-code tree walker | Yes | No | C, Perl | 175k C, 9k Perl |
CPython | Python | Yes | Psyco | C | 387k C, 368k Python, 10k ASM, 31k Psyco | |
PyPy | Python | Self-hosting implementation of Python, next generation of Psyco | Yes | Yes | Python | |
Rubinius | Ruby | Virtual machine for another Ruby implementation | Yes | Yes | C++, Ruby | |
Silverlight | C#, VB.NET | A Micro-version of Microsoft .NET Framework to let applications run sandboxed inside browser | Yes | Yes | C++ | 7MB (initially released) |
SEAM | Alice | |||||
ScummVM | Scumm | Computer game engine | ||||
SECD | ISWIM, Lispkit Lisp | |||||
Squirrel | Squirrel | Yes | Squirrel_JIT | C++ | 12k | |
Smalltalk | Smalltalk | |||||
SQLite | SQLite opcodes | Virtual database engine | ||||
Squeak | Squeak Smalltalk | Self hosting implementation of Squeak virtual machine. Rich multi-media support. | Yes | Cog & Exupery | Smalltalk/Slang | 110k Smalltalk, ~300K C |
TaoGroup VP/VP2 | C, Java | Proprietary embedded VM | ||||
TraceMonkey | JavaScript | Based on Tamarin | No | Yes | C++ | 173k |
Translator Engine | Flat File Tables/Global C++ variable declarations | IDE, programming by demonstration | ||||
TrueType | TrueType | Font rendering engine | Yes | No | C (typically) | |
Valgrind | x86/x86-64 binaries | Checking of memory accesses and leaks under Linux | C | 467k | ||
VisualWorks | Smalltalk | No | Yes | C | ||
VMKit | JVM and CLI virtual machine based on LLVM. | No | Yes | |||
Vx32 virtual machine | x86 binaries | Application-level virtualization for native code | No | Yes | ||
Waba | Virtual machine for small devices, similar to Java | |||||
Yet Another Ruby VM (YARV) | Ruby | Virtual machine of the reference implementation for Ruby 1.9 and newer versions | Yes | Yes | C | |
Z-machine | Z-Code | |||||
Zend Engine | PHP | Yes | No | C | 75k | |
libJIT Library for Just-In-Time compilation | Common Intermediate Language Java bytecode Domain-specific programming language | Virtual machine is used in Portable.NET Just-In-Time compiler, ILDJIT, HornetsEye | Yes | Yes | C, ia32, arm, amd64, alpha, low-level CPU architecture specific machine code |
Read more about this topic: Comparison Of Application Virtual Machines
Famous quotes containing the words list of, list, application, virtual and/or machine:
“The advice of their elders to young men is very apt to be as unreal as a list of the hundred best books.”
—Oliver Wendell Holmes, Jr. (18411935)
“Modern tourist guides have helped raised tourist expectations. And they have provided the nativesfrom Kaiser Wilhelm down to the villagers of Chichacestenangowith a detailed and itemized list of what is expected of them and when. These are the up-to- date scripts for actors on the tourists stage.”
—Daniel J. Boorstin (b. 1914)
“We will not be imposed upon by this vast application of forces. We believe that most things will have to be accomplished still by the application called Industry. We are rather pleased, after all, to consider the small private, but both constant and accumulated, force which stands behind every spade in the field. This it is that makes the valleys shine, and the deserts really bloom.”
—Henry David Thoreau (18171862)
“Tragedy dramatizes human life as potentiality and fulfillment. Its virtual future, or Destiny, is therefore quite different from that created in comedy. Comic Destiny is Fortunewhat the world will bring, and the man will take or miss, encounter or escape; tragic Destiny is what the man brings, and the world will demand of him. That is his Fate.”
—Susanne K. Langer (18951985)
“The Frenchman Jean-Paul ... Sartre I remember now was his last name had a dialectical mind good as a machine for cybernetics, immense in its way, he could peel a nuance like an onion, but he had no sense of evil, the anguish of God, and the possible existence of Satan.”
—Norman Mailer (b. 1923)