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:

    Shea—they call him Scholar Jack—
    Went down the list of the dead.
    Officers, seamen, gunners, marines,
    The crews of the gig and yawl,
    The bearded man and the lad in his teens,
    Carpenters, coal-passers—all.
    Joseph I. C. Clarke (1846–1925)

    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)

    May my application so close
    To so endless a repetition
    Not make me tired and morose
    And resentful of man’s condition.
    Robert Frost (1874–1963)

    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)

    ... in the fierce competition of modern society the only class left in the country possessing leisure is that of women supported in easy circumstances by husband or father, and it is to this class we must look for the maintenance of cultivated and refined tastes, for that value and pursuit of knowledge and of art for their own sakes which can alone save society from degenerating into a huge machine for making money, and gratifying the love of sensual luxury.
    Mrs. H. O. Ward (1824–1899)