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:

    I made a list of things I have
    to remember and a list
    of things I want to forget,
    but I see they are the same list.
    Linda Pastan (b. 1932)

    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)

    The best political economy is the care and culture of men; for, in these crises, all are ruined except such as are proper individuals, capable of thought, and of new choice and the application of their talent to new labor.
    Ralph Waldo Emerson (1803–1882)

    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 Fortune—what 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 (1895–1985)

    He is no more than the chief officer of the people, appointed by the laws, and circumscribed with definite powers, to assist in working the great machine of government erected for their use, and consequently subject to their superintendence.
    Thomas Jefferson (1743–1826)