List of JVM languages
Encyclopedia
This list of JVM Languages comprises computer programming language
s that are used to produce software
that runs on the Java Virtual Machine
(JVM). Some of these languages are interpreted
by a Java
program, and some are compiled to Java bytecode
and JITted
during execution as regular Java programs to improve performance.
The JVM
was initially designed to support only the Java programming language. However, as time passed, ever more languages were adapted or designed to run on the Java platform.
itself, the most common or well-known JVM languages are:
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
s that are used to produce software
Computer software
Computer software, or just software, is a collection of computer programs and related data that provide the instructions for telling a computer what to do and how to do it....
that runs on the Java Virtual Machine
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...
(JVM). Some of these languages are interpreted
Interpreted language
Interpreted language is a programming language in which programs are 'indirectly' executed by an interpreter program. This can be contrasted with a compiled language which is converted into machine code and then 'directly' executed by the host CPU...
by a Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
program, and some are compiled to Java bytecode
Java bytecode
Java bytecode is the form of instructions that the Java virtual machine executes. Each bytecode opcode is one byte in length, although some require parameters, resulting in some multi-byte instructions. Not all of the possible 256 opcodes are used. 51 are reserved for future use...
and JITted
Just-in-time compilation
In computing, just-in-time compilation , also known as dynamic translation, is a method to improve the runtime performance of computer programs. Historically, computer programs had two modes of runtime operation, either interpreted or static compilation...
during execution as regular Java programs to improve performance.
The JVM
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...
was initially designed to support only the Java programming language. However, as time passed, ever more languages were adapted or designed to run on the Java platform.
High-profile languages
Apart from the Java languageJava (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
itself, the most common or well-known JVM languages are:
- ClojureClojureClojure |closure]]") is a recent dialect of the Lisp programming language created by Rich Hickey. It is a general-purpose language supporting interactive development that encourages a functional programming style, and simplifies multithreaded programming....
, a functionalFunctional programmingIn computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It emphasizes the application of functions, in contrast to the imperative programming style, which emphasizes changes in state...
Lisp dialect - Groovy, a scripting languageScripting languageA scripting language, script language, or extension language is a programming language that allows control of one or more applications. "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the...
- Scala, an object-orientedObject-oriented programmingObject-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
and functional programmingFunctional programmingIn computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It emphasizes the application of functions, in contrast to the imperative programming style, which emphasizes changes in state...
language - JavaFX ScriptJavaFX ScriptJavaFX Script is a scripting language designed by Sun Microsystems, forming part of the JavaFX family of technologies on the Java Platform.JavaFX targets the Rich Internet Application domain , specializing in rapid development of visually rich applications for the desktop and mobile markets...
, a scripting language targeting the Rich Internet ApplicationRich Internet applicationA Rich Internet Application is a Web application that has many of the characteristics of desktop application software, typically delivered either by way of a site-specific browser, via a browser plug-in, independent sandboxes, extensive use of JavaScript, or virtual machines...
domain - JRubyJRubyJRuby is a Java implementation of the Ruby programming language, being developed by the JRuby team. It is free software released under a three-way CPL/GPL/LGPL license...
, an implementation of RubyRuby (programming language)Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto... - JythonJythonJython, successor of JPython, is an implementation of the Python programming language written in Java.-Overview:Jython programs can seamlessly import and use any Java class. Except for some standard modules, Jython programs use Java classes instead of Python modules...
, an implementation of PythonPython (programming language)Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive... - RhinoRhino (JavaScript engine)Rhino is an open source JavaScript engine. It is developed entirely in Java and managed by the Mozilla Foundation. The Foundation also provides another implementation of JavaScript engine written in C known as SpiderMonkey....
, an implementation of JavaScriptJavaScriptJavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles.... - AspectJAspectJAspectJ is an aspect-oriented extension created at PARC for the Java programming language. It is available in Eclipse Foundation open-source projects, both stand-alone and integrated into Eclipse. AspectJ has become the widely-used de-facto standard for AOP by emphasizing simplicity and usability...
, an aspect-oriented extension of Java
JVM implementations of existing languages
Language | Java implementations |
---|---|
Ada Ada (programming language) Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages... |
JGNAT |
AWK | Jawk |
BBx BBx BBx is the original name for the Business Basic interpreter developed by BASIS International in 1985. Subsequent generations of BBx have been BBxPROGRESSION/2, BBxPROGRESSION/3, PROGRESSION/4, PRO/5 and Visual PRO/5... |
BBj BBj BBj is a software development framework which consists of a dynamic programming language by the same name, an integrated development environment, a GUI forms designer, a Rapid Application Development tool called for generating database-driven graphical applications.BBj is Java-integrated and... is a superset of BBx BBx BBx is the original name for the Business Basic interpreter developed by BASIS International in 1985. Subsequent generations of BBx have been BBxPROGRESSION/2, BBxPROGRESSION/3, PROGRESSION/4, PRO/5 and Visual PRO/5... , PRO/5, and Visual PRO/5. |
C C (programming language) C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.... |
C to Java Virtual Machine compilers |
Cobol COBOL COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments.... |
Micro Focus JVM Visual COBOL Veryant isCobol |
ColdFusion ColdFusion In computing, ColdFusion is the name of a commercial rapid application development platform invented by Jeremy and JJ Allaire in 1995. ColdFusion was originally designed to make it easier to connect simple HTML pages to a database, by version 2 it had... |
Adobe ColdFusion ColdFusion In computing, ColdFusion is the name of a commercial rapid application development platform invented by Jeremy and JJ Allaire in 1995. ColdFusion was originally designed to make it easier to connect simple HTML pages to a database, by version 2 it had... Railo Railo Railo is Open Source software which implements the general-purpose CFML server-side scripting language, often used to create dynamic websites, web applications and intranet systems... Open BlueDragon BlueDragon BlueDragon is a ColdFusion Markup Language engine comparable to Adobe Systems's ColdFusion. It is licensed and distributed by New Atlanta from TagServlet Ltd based in Scotland... |
Common Lisp Common Lisp Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 , . From the ANSI Common Lisp standard the Common Lisp HyperSpec has been derived for use with web browsers... |
Armed Bear Common Lisp CLforJava CLforJava CLforJava is an unfinished implementation of Common Lisp in the Java programming language. The project is actively developed at the College of Charleston... Jatha (Common LISP) |
Component Pascal Component Pascal Component Pascal is a programming language in the tradition of Niklaus Wirth's Pascal, Modula-2, Oberon and Oberon-2. It bears the name of the Pascal programming language but is incompatible with it. Instead, it is a minor variant and refinement of Oberon-2, designed and supported by a small ETH... |
Gardens Point Component Pascal Component Pascal Component Pascal is a programming language in the tradition of Niklaus Wirth's Pascal, Modula-2, Oberon and Oberon-2. It bears the name of the Pascal programming language but is incompatible with it. Instead, it is a minor variant and refinement of Oberon-2, designed and supported by a small ETH... |
Erlang | Erjang |
Forth | myForth |
JavaScript JavaScript JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles.... |
Rhino Rhino (JavaScript engine) Rhino is an open source JavaScript engine. It is developed entirely in Java and managed by the Mozilla Foundation. The Foundation also provides another implementation of JavaScript engine written in C known as SpiderMonkey.... |
Logo Logo (programming language) Logo is a multi-paradigm computer programming language used in education. It is an adaptation and dialect of the Lisp language; some have called it Lisp without the parentheses. It was originally conceived and written as functional programming language, and drove a mechanical turtle as an output... |
jLogo XLogo |
Lua | Kahlua Luaj Jill |
Oberon-2 | Canterbury Oberon-2 for JVM JOB |
Objective Caml Objective Caml OCaml , originally known as Objective Caml, is the main implementation of the Caml programming language, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy and others in 1996... (OCaml) |
OCaml-Java |
Pascal Pascal (programming language) Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal... |
Canterbury Pascal for JVM Free Pascal Free Pascal Free Pascal Compiler is a free Pascal and Object Pascal compiler.In addition to its own Object Pascal dialect, Free Pascal supports, to varying degrees, the dialects of several other compilers, including those of Turbo Pascal, Delphi, and some historical Macintosh compilers... MIDletPascal MIDletPascal MIDletPascal is an Pascal compiler and IDE specifically designed to create software for mobiles. It generates Java bytecode that runs on any Java ME device. In September 2009, Niksa Orlic, who wrote MIDlet pascal, transmitted the source code to the Russian Boolean.name development community for... |
PHP PHP PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document... |
IBM WebSphere sMash PHP (P8) Caucho Quercus |
Python | Jython Jython Jython, successor of JPython, is an implementation of the Python programming language written in Java.-Overview:Jython programs can seamlessly import and use any Java class. Except for some standard modules, Jython programs use Java classes instead of Python modules... |
REXX REXX REXX is an interpreted programming language that was developed at IBM. It is a structured high-level programming language that was designed to be both easy to learn and easy to read... |
NetRexx NetRexx NetRexx is an open source, originally IBM's, variant of the REXX programming language to run on the Java virtual machine. It supports a classic REXX syntax, with no reserved keywords, along with considerable additions to support object-oriented programming in a manner compatible with Java's object... |
Ruby Ruby (programming language) Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto... |
JRuby JRuby JRuby is a Java implementation of the Ruby programming language, being developed by the JRuby team. It is free software released under a three-way CPL/GPL/LGPL license... |
Scheme | Bigloo Bigloo Bigloo is an implementation of the Scheme programming language developed at the French IT research institute INRIA. Its orientation is towards providing tools for effective and diverse code generation that can match the performance of hand-written C or C++. The Bigloo system contains a Scheme... Kawa SISC SISC SISC is an R5RS Scheme implementation, which includes a full number tower, hygienic macros, proper tail recursion, and first class continuations... JScheme JScheme JScheme is an implementation of the Scheme programming language, created by Kenneth R. Anderson, Timothy J. Hickey and Peter Norvig, which is almost compliant with the R4RS Scheme standard and which has an interface to Java.... |
Tcl Tcl Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration", according to the author, with programmers devising their own languages intended to be embedded into applications, Tcl gained acceptance on its own... |
Jacl JTcl |
New JVM languages
- Alef++, a language inspired by Perl and Lisp.
- Ateji PXAteji PXAteji PX is an object-oriented programming language extension for Java. It is intended to facilliate parallel computing on multi-core processors, GPU, Grid and Cloud....
, an extension of Java for easy parallel programming on multicore, GPU, Grid and Cloud. - BBjBBjBBj is a software development framework which consists of a dynamic programming language by the same name, an integrated development environment, a GUI forms designer, a Rapid Application Development tool called for generating database-driven graphical applications.BBj is Java-integrated and...
, an object-orientedObject-oriented programmingObject-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
language for business applications - BeanShellBeanShellBeanShell is a Java scripting language, invented by Patrick Niemeyer. It runs in the Java Runtime Environment and uses Java syntax, in addition to scripting commands and syntax.- Features :...
, a scripting language whose syntax is close to Java. - CeylonCeylon ProjectThe Ceylon Project is an upcoming programming language and SDK, created by Red Hat. It is based on the Java programming language and when it is released, will run under the Java Virtual Machine....
, an upcoming Red HatRed HatRed Hat, Inc. is an S&P 500 company in the free and open source software sector, and a major Linux distribution vendor. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North Carolina with satellite offices worldwide....
's Java competitor - ColdFusion, a scripting language compiled to Java, used on the ColdFusionColdFusionIn computing, ColdFusion is the name of a commercial rapid application development platform invented by Jeremy and JJ Allaire in 1995. ColdFusion was originally designed to make it easier to connect simple HTML pages to a database, by version 2 it had...
application Server - CALQuark FrameworkThe Quark Framework consists of a non-strict functional language and runtime for the Java platform. The framework allows the compilation and evaluation of functional logic on the Java Virtual Machine , directly or under the control of a regular Java application. The native language for the...
, a HaskellHaskell (programming language)Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. It is named after logician Haskell Curry. In Haskell, "a function is a first-class citizen" of the programming language. As a functional programming language, the...
-inspired functional language. - EE (programming language)E is an object-oriented programming language for secure distributed computing, created by Mark S. Miller, Dan Bornstein, and others at Electric Communities in 1997. E is mainly descended from the concurrent language Joule and from Original-E, a set of extensions to Java for secure distributed...
language has an implementation on the JVM. - Fantom, a language built from the base to be portable across the JVM, .NET CLRCommon Language RuntimeThe Common Language Runtime is the virtual machine component of Microsoft's .NET framework and is responsible for managing the execution of .NET programs. In a process known as just-in-time compilation, the CLR compiles the intermediate language code known as CIL into the machine instructions...
, and JavaScript. - Flow JavaFlow JavaFlow Java is a conservative extension to the Java programming language.It integrates single assignment variables and logic variables, to Java.Its development was influenced by Mozart/Oz....
. - Fortress, a language designed by Sun as a successor to Fortran, mainly for parallel scientific computing.
- FrinkFrinkFrink, named after the fictional mad scientist Professor John Frink from The Simpsons, is a calculating tool and programming language designed by Alan Eliasen. It is built on the Java Virtual Machine and incorporates features similar to Java, Perl, Ruby, Smalltalk, and various BASIC implementations...
, a language that tracks units of measure through calculations. - Gosu (programming language)Gosu (programming language)Gosu is a general-purpose Java Virtual Machine-based programming language released under the Apache License 2.0. This general-purpose programming language is used in some open-source software projects, including the web application framework and the build-tool , as well as in Guidewire Software...
, an extensible type-system language compiled to Java bytecode. - Hecl.
- IokeIoke (programming language)Ioke is a dynamic, strongly typed, prototype-based programming language targeting the Java Virtual Machine and the Common Language Runtime. It was designed by Ola Bini, a developer of JRuby. It has a very simple homoiconic syntax, somewhat similar to Io....
, a prototype-basedPrototype-based programmingPrototype-based programming is a style of object-oriented programming in which classes are not present, and behavior reuse is performed via a process of cloning existing objects that serve as prototypes. This model can also be known as classless, prototype-oriented or instance-based programming...
language somewhat reminiscent of IoIo (programming language)Io is a pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript. Io has a prototype-based object model similar to the ones in Self and NewtonScript, eliminating the distinction between instance and class. Like Smalltalk, everything is an object and...
, with similarities to RubyRuby (programming language)Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...
, Lisp and SmalltalkSmalltalkSmalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...
. - KBML, an expert systemExpert systemIn artificial intelligence, an expert system is a computer system that emulates the decision-making ability of a human expert. Expert systems are designed to solve complex problems by reasoning about knowledge, like an expert, and not by following the procedure of a developer as is the case in...
DSL for defining correlation rules and event processing. Used by products based on the OpenKBMOpenKBMOpenKBM is a systems management platform for the development of applications that solve complex problems using knowledge management techniques ....
platform. - Jabaco, A BASIC-like GUI RAD language for Windows that uses the JVM.
- Jaskell, a HaskellHaskell (programming language)Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. It is named after logician Haskell Curry. In Haskell, "a function is a first-class citizen" of the programming language. As a functional programming language, the...
inspired scripting language. - JellyApache JellyApache Jelly is a Java and XML based scripting and processing engine for turning XML into executable code. Jelly is a component of Apache Commons.Custom XML languages are commonly created to perform some kind of processing action...
. - Join JavaJoin JavaJoin Java is a programming language that extends the standard Java programming language with the join semantics of the join-calculus. It was written at the University of South Australia within the Reconfigurable Computing Lab by Dr...
, a language that extends Java with the join semantics of the join-calculusJoin-calculusThe join-calculus is a process calculus developed at INRIA. The join-calculus was developed to provide a formal basis for the design of distributed programming languages, and therefore intentionally avoids communications constructs found in other process calculi, such as rendezvous communications,...
. - Joy.
- JudoscriptJudoscriptJudoscript is one of several general purpose programming languages designed primarily for scripting on the Java platform. Its originator and primary developer is software engineer James Jianbo Huang...
. - MirahMirah (programming language)Mirah is a programming language based on Ruby syntax, local type inference, hybrid static/dynamic type system, and a pluggable compiler toolchain...
, a customizable language featuring type inferenceType inferenceType inference refers to the automatic deduction of the type of an expression in a programming language. If some, but not all, type annotations are already present it is referred to as type reconstruction....
and a highly Ruby-inspired syntax. - N.A.M.E. Basic.
- NetLogoNetLogoNetLogo is a multi-agent programming language and integrated modeling environment.-About:NetLogo was designed in the spirit of the Logo programming language to be "low threshold and no ceiling," that is to enable easy entry by novices and yet meet the needs of high powered users. The NetLogo...
, a multi-agentMulti-agent systemA multi-agent system is a system composed of multiple interacting intelligent agents. Multi-agent systems can be used to solve problems that are difficult or impossible for an individual agent or a monolithic system to solve...
language. - Nice.
- NoopNoopNoop was a project from Google aiming to develop a new programming language. Noop attempts to blend the best features of "old" and "new" languages, while syntactically encouraging industry best-practices...
, a language built with testability as a major focus. - ObjectScript.
- PHP.reboot, a PHP-style language.
- Pizza, a superset of Java with function pointerFunction pointerA function pointer is a type of pointer in C, C++, D, and other C-like programming languages, and Fortran 2003. When dereferenced, a function pointer can be used to invoke a function and pass it arguments just like a normal function...
s and algebraic data typeAlgebraic data typeIn computer programming, particularly functional programming and type theory, an algebraic data type is a datatype each of whose values is data from other datatypes wrapped in one of the constructors of the datatype. Any wrapped datum is an argument to the constructor...
s. - PnutsPnutsPnuts is a dynamic scripting language for the Java platform. It is designed to be used in a dual language system with the Java programming language. The goals of the Pnuts project are to provide a small, fast scripting language that has tight integration with the Java language...
. - Stab, a C# work-alike.
- Sleep, a proceduralProcedural programmingProcedural programming can sometimes be used as a synonym for imperative programming , but can also refer to a programming paradigm, derived from structured programming, based upon the concept of the procedure call...
scripting languageScripting languageA scripting language, script language, or extension language is a programming language that allows control of one or more applications. "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the...
inspired by PerlPerlPerl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
and Objective-CObjective-CObjective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...
. - V language has an implementation on the JVM.
- X10X10 (programming language)X10 is a programming language being developed by IBM at the Thomas J. Watson Research Center as part of the Productive, Easy-to-use, Reliable Computing System project funded by DARPA's High Productivity Computing Systems program...
, a IBM language designed for high-performance heteregenous clusters and parallel scientific computations. The syntax is based on Java. An optimizing compiler targets JVM or C++. - Yeti, a ML style functional language, that runs on the JVM.
See also
- Java Virtual Machine (Support for Dynamic Languages section)
- Da Vinci MachineDa Vinci MachineThe Da Vinci Machine, also called the Multi Language Virtual Machine is a Sun Microsystems project aiming to prototype the extension of the Java Virtual Machine to add support for dynamic languages....
- List of CLI languages