Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Java virtual machine
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===JVM languages=== {{Main|List of JVM languages}} A JVM language is any language with functionality that can be expressed in terms of a valid class file which can be hosted by the Java Virtual Machine. A class file contains Java Virtual Machine instructions ([[Java byte code]]) and a symbol table, as well as other ancillary information. The class file format is the hardware- and operating system-independent binary format used to represent compiled classes and interfaces.<ref>{{cite web |url=http://docs.oracle.com/javase/specs/jvms/se7/jvms7.pdf |title=The Java Virtual Machine Specification : Java SE 7 Edition |publisher=Docs.oracle.com |access-date=2015-06-26 |archive-date=2021-02-04 |archive-url=https://web.archive.org/web/20210204093304/https://docs.oracle.com/javase/specs/jvms/se7/jvms7.pdf |url-status=live }}</ref> There are several JVM languages, both old languages ported to JVM and completely new languages. [[JRuby]] and [[Jython]] are perhaps the most well-known ports of existing languages, i.e. [[Ruby (programming language)|Ruby]] and [[Python (programming language)|Python]] respectively. Of the new languages that have been created from scratch to compile to Java bytecode, [[Clojure]], [[Apache Groovy|Groovy]], [[Scala (programming language)|Scala]] and [[Kotlin (programming language)|Kotlin]] may be the most popular ones. A notable feature with the JVM languages is that they are [[Language interoperability|compatible with each other]], so that, for example, Scala libraries can be used with Java programs and vice versa.<ref>{{cite web |url=http://www.scala-lang.org/old/faq/4 |title=Frequently Asked Questions - Java Interoperability |author=<!--Staff writer(s); no by-line.--> |website=scala-lang.org |access-date=2015-11-18 |archive-date=2020-08-09 |archive-url=https://web.archive.org/web/20200809214018/https://www.scala-lang.org/old/faq/4 |url-status=live }}</ref> Java 7 JVM implements ''JSR 292: Supporting Dynamically Typed Languages''<ref>{{cite web |url=https://jcp.org/en/jsr/detail?id=292 |title=The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 292 |publisher=Jcp.org |access-date=2015-06-26 |archive-date=2020-12-20 |archive-url=https://web.archive.org/web/20201220200733/https://jcp.org/en/jsr/detail?id=292 |url-status=live }}</ref> on the Java Platform, a new feature which supports dynamically typed languages in the JVM. This feature is developed within the [[Da Vinci Machine]] project whose mission is to extend the JVM so that it supports languages other than Java.<ref>{{cite web |url=http://openjdk.java.net/projects/mlvm/ |title=Da Vinci Machine project |publisher=Openjdk.java.net |access-date=2015-06-26 |archive-date=2020-11-11 |archive-url=https://web.archive.org/web/20201111162302/https://openjdk.java.net/projects/mlvm/ |url-status=live }}</ref><ref>{{cite web |url=http://www.oracle.com/technetwork/articles/javase/dyntypelang-142348.html |title=New JDK 7 Feature: Support for Dynamically Typed Languages in the Java Virtual Machine |publisher=Oracle.com |access-date=2015-06-26 |archive-date=2018-09-13 |archive-url=https://web.archive.org/web/20180913101203/http://www.oracle.com/technetwork/articles/javase/dyntypelang-142348.html |url-status=live }}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)