List of JVM languages





This list of JVM Languages comprises notable computer programming languages that are used to produce computer 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 JIT-compiled during execution as regular Java programs to improve performance.


The JVM was initially designed to support only the programming language Java. However, as time passed, even more languages were adapted or designed to run on the Java platform.




Contents






  • 1 JVM languages


    • 1.1 High-profile languages


    • 1.2 JVM implementations of existing languages


    • 1.3 New languages with JVM implementations


      • 1.3.1 Comparison of these languages






  • 2 See also


  • 3 Notes


  • 4 References





JVM languages



High-profile languages


Apart from the Java language, the most common or well-known other JVM languages are:




  • Clojure, a modern, dynamic, and functional dialect of the Lisp programming language


  • Groovy, a dynamic programming and scripting language


  • JRuby, an implementation of Ruby


  • Jython, an implementation of Python


  • Kotlin, a statically-typed language from JetBrains, the developers of IntelliJ IDEA


  • Scala, a statically-typed object-oriented and functional programming language[1]



JVM implementations of existing languages































































































Language
Java implementations

Arden Syntax

Arden2ByteCode

COBOL

Micro Focus Visual COBOL[2]

ColdFusion Markup Language (CFML)

Adobe ColdFusion
Railo
Lucee
Open BlueDragon

Common Lisp
Armed Bear Common Lisp[3]

Cypher

Neo4j[4]

Haskell

Eta

JavaScript

Rhino
Nashorn

Graal.js[5]



LLVM Bitcode
Sulong[6]

Mercury

Mercury (Java grade)

Component Pascal

Gardens Point Component Pascal

Pascal

MIDletPascal
Oxygene

Perl 6

Rakudo Perl 6

PHP

Quercus[7][8]JPHP

Prolog

JIProlog
TuProlog

Python

Jython

ZipPy[9]


Graal.Python[5]



R

Renjin

FastR[10]



Rexx

NetRexx

Ruby

JRuby
TruffleRuby[11]

Scheme

Bigloo
Kawa
SISC
JScheme

Smalltalk
Redline[12]

Tcl

Jacl

Visual Basic

Jabaco[note 1]


New languages with JVM implementations




  • Ateji PX, an extension of Java for easy parallel programming on multicore, GPU, Grid and Cloud[17]


  • BeanShell, a scripting language which syntax is close to Java


  • Eclipse Ceylon, a Java competitor from Red Hat

  • EPL (Event Processing Language), a domain-specific, data manipulation language for analyzing and detecting patterns in timed event streams, which extends SQL 92 with event-oriented features. It is implemented by Esper: up to version 6 EPL was mostly a language interpreted by a Java library; since version 7 it is compiled to JVM bytecode.


  • CFML, ColdFusion Markup Language, more commonly known as CFML, is a scripting language for web development that runs on the JVM, the .NET framework, and Google App Engine. [18]


  • E-on-Java, object-oriented programming language for secure distributed computing

  • Eta, pure, lazy, strongly typed functional programming language in the spirit of Haskell[19]


  • Fantom, a language built from the base to be portable across the JVM, .NET Common Language Runtime (CLR), and JavaScript[20]

  • Flow Java


  • Fortress, a language designed by Sun as a successor to Fortran, mainly for parallel scientific computing. Product development was taken over by Oracle when Sun was purchased. Oracle then stopped development in 2012 according to Dr. Dobb's.


  • Frege, a non-strict, pure functional programming language in the spirit of Haskell[21]


  • Golo, a simple, dynamic, weakly-typed language for the JVM developed at Institut national des sciences appliquées de Lyon, France, now an incubating project at the Eclipse Software Foundation.[22][23][24]


  • Gosu, an extensible type-system language compiled to Java bytecode


  • Ioke, a prototype-based language somewhat reminiscent of Io, with similarities to Ruby, Lisp and Smalltalk

  • Jelly


  • Join Java, a language that extends Java with join-calculus semantics

  • Joy

  • Judoscript


  • Mirah, a customizable language featuring type inference and a highly Ruby-inspired syntax[25][26]


  • NetLogo, a multi-agent language

  • Nice


  • Noop, a language built with testability as a major focus


  • Pizza, a superset of Java with function pointers and algebraic data types

  • Pnuts


  • Processing, a visualization and animation language and framework based on Java with a Java-like syntax


  • RascalMPL, a source and target language independent (parameterized) meta programming language

  • Whiley


  • X10, a language designed by IBM, featuring constrained types and a focus on concurrency and distribution


  • Xtend, an object-oriented, functional, and imperative programming language built by the Eclipse foundation, featuring tight Java interoperability, with a focus on extension methods and lambdas, and rich tooling


  • Yoix, general purpose, non-object-oriented, interpreted dynamic programming language



Comparison of these languages





































































Language
First Release
Stable release
Last release

BeanShell
1999
2013
2016

Eclipse Ceylon
2011
2017
2017

CFML
1995
2018
2018
Quark Framework
2011
2018


E
1997



Fantom
2011
2017


Fortress
2006
2011
2017

Frege




Mirah
2016



Xtend
2011
2017



See also




  • Da Vinci Machine

  • Java virtual machine#JVM languages


  • List of CLI languages, following the CLI specification, Microsoft's response to JVM



Notes





  1. ^ [13][14][15] is a freeware IDE in beta-testing since 2009, with a partly open source [16] Jabaco framework runtime. Jabaco compiles VB 6 syntax source to Java bytecode.




References





  1. ^ Wampler, Dean (15 January 2009). "Adopting New JVM Languages in the Enterprise (Updated)". objectmentor.com. Archived from the original on 22 May 2009. Retrieved 18 June 2009..mw-parser-output cite.citation{font-style:inherit}.mw-parser-output .citation q{quotes:"""""""'""'"}.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/6/65/Lock-green.svg/9px-Lock-green.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Lock-gray-alt-2.svg/9px-Lock-gray-alt-2.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Lock-red-alt-2.svg/9px-Lock-red-alt-2.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration{color:#555}.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration span{border-bottom:1px dotted;cursor:help}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/12px-Wikisource-logo.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output code.cs1-code{color:inherit;background:inherit;border:inherit;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;font-size:100%}.mw-parser-output .cs1-visible-error{font-size:100%}.mw-parser-output .cs1-maint{display:none;color:#33aa33;margin-left:0.3em}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration,.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-right{padding-right:0.2em}


  2. ^ "Visual COBOL Brochure" (PDF). Retrieved 5 April 2017.


  3. ^ Armed Bear Common Lisp


  4. ^ "New on Neo4j: The Neo4j 2.3.0 Milestone 2 Release Is Here". Retrieved 20 February 2017.


  5. ^ ab "Oracle Labs GraalVM: Programming Languages and Runtimes Overview". www.oracle.com. Retrieved 2018-04-12.


  6. ^ "graalvm/sulong". GitHub. Retrieved 2018-04-12.


  7. ^ "Introducing Quercus, a Java based PHP". Retrieved 2 July 2015.


  8. ^ "Running PHP With Quercus in Sun Java System Web Server". Retrieved 2 July 2015.


  9. ^ "ssllab / ZipPy — Bitbucket". bitbucket.org. Retrieved 2018-04-12.


  10. ^ "oracle/fastr". GitHub. Retrieved 2018-04-12.


  11. ^ "oracle/truffleruby". GitHub. Retrieved 2018-04-12.


  12. ^ "Redline Smalltalk". Retrieved 2018-09-02.


  13. ^ "Jabaco entry at Mindteq.com Basics section". Retrieved 2 July 2015.]


  14. ^ "Article about Jabaco at German Pro-Linux publication". Retrieved 2 July 2015.]


  15. ^ "Basic meet Java". Retrieved 26 February 2015.


  16. ^ "Framework". Retrieved 26 February 2015.


  17. ^ "Ateji PX: Java Parallel Programming Made Simple". Ateji. Archived from the original on 24 February 2014. Retrieved 1 March 2014.


  18. ^ CFML, a scripting language compiled to Java, used on the ColdFusion or Railo application servers
    • Quark Framework (CAL), a Haskell-inspired functional language



  19. ^ "The Eta Programming Language". Retrieved 10 May 2017.


  20. ^ "Fantom Programming Language". Fantom. Retrieved 1 March 2014.


  21. ^ "Frege". Retrieved 1 March 2014.


  22. ^ "Oracle.com - Golo – A Lightweight Dynamic Language for the JVM". Archived from the original on 3 July 2015. Retrieved 2 July 2015.]


  23. ^ "Golo nominated for JAX Awards 2014". Retrieved 2 July 2015.]


  24. ^ "Golo entry at JAX Awards 2014". Retrieved 2 July 2015.]


  25. ^ "The Mirah Programming Language". GitHub. Retrieved 1 March 2014.


  26. ^ "Mirah". Retrieved 1 March 2014.












Comments

Popular posts from this blog

Information security

Volkswagen Group MQB platform

刘萌萌