Comparison of Application Virtual Machines - List of Application Virtual Machine Implementations

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:

    A man’s interest in a single bluebird is worth more than a complete but dry list of the fauna and flora of a town.
    Henry David Thoreau (1817–1862)

    Hey, you dress up our town very nicely. You don’t look out the Chamber of Commerce is going to list you in their publicity with the local attractions.
    Robert M. Fresco, and Jack Arnold. Dr. Matt Hastings (John Agar)

    It would be disingenuous, however, not to point out that some things are considered as morally certain, that is, as having sufficient certainty for application to ordinary life, even though they may be uncertain in relation to the absolute power of God.
    René Descartes (1596–1650)

    Neither dead nor alive, the hostage is suspended by an incalculable outcome. It is not his destiny that awaits for him, nor his own death, but anonymous chance, which can only seem to him something absolutely arbitrary.... He is in a state of radical emergency, of virtual extermination.
    Jean Baudrillard (b. 1929)

    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)