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:
“Feminism is an entire world view or gestalt, not just a laundry list of womens issues.”
—Charlotte Bunch (b. 1944)
“Weigh what loss your honor may sustain
If with too credent ear you list his songs,
Or lose your heart, or your chaste treasure open
To his unmastered importunity.”
—William Shakespeare (15641616)
“By an application of the theory of relativity to the taste of readers, to-day in Germany I am called a German man of science, and in England I am represented as a Swiss Jew. If I come to be regarded as a bĂȘte noire the descriptions will be reversed, and I shall become a Swiss Jew for the Germans and a German man of science for the English!”
—Albert Einstein (18791955)
“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 momentary charge at Balaklava, in obedience to a blundering command, proving what a perfect machine the soldier is, has, properly enough, been celebrated by a poet laureate; but the steady, and for the most part successful, charge of this man, for some years, against the legions of Slavery, in obedience to an infinitely higher command, is as much more memorable than that as an intelligent and conscientious man is superior to a machine. Do you think that that will go unsung?”
—Henry David Thoreau (18171862)