JVM编程语言–为Java虚拟机创建软件的专家指南

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


本页上的JVM语言列表包括用于为Java虚拟机(JVM)创建软件的主要编程语言。最初,JVM被创建为仅支持Java语言。但是,随着它的流行,更多的语言被添加或修改为可以在平台上运行.

JVM语言

以下JVM编程语言是专门为在Java虚拟机上运行而编写的。其中许多是现有语言的实现,例如Python或PHP,已调整为可与JVM配合使用,例如Jython(Python实现)和Quercus(PHP实现)。.

在本文的底部,我们还列出了一些Java转换器,这些转换器可以从C或Python之类的语言中获取代码,并且(表面上)将其转换为Java代码。这些转化者在用户中产生了不同的评价,但仍然值得一看.

最受欢迎

让我们从最流行的JVM编程语言开始。这些是Java(当然),Groovy,Clojure(Functional Lisp的方言),Scala,JRuby,Kotlin,Xtend,Ceylon,Fantom和Jython。一些语言是专门为JVM开发的.

Clojure

Clojure可能是JVM所有编程语言中最受欢迎的人群。功能性Lisp方言,其不变性和简单性使其成为开发人员的热门选择。与此相对应的是,错误消息,动态类型和根本不同的语法令人困惑.

斯卡拉

Scala是可以使用Java库的静态类型JVM编程语言。它使用不变的值,并支持命令性和功能性范例,使用户可以自由选择。但是,其复杂的语法和强大的系统可能会吓到一些初学者.

科特林

Kotlin是Java虚拟机的静态类型编码语言。设计用于解决Java大多数问题的类型系统,旨在从我们的代码中消除空引用。因为它运行在JVM上,所以该编程语言可与Java完全互操作。与Scala一样,它可以使用现有的Java库和框架.

锡兰

Ceylon是用于JVM的静态类型的,面向对象的编程语言。它由Red Hat创建,具有比Java更强大的类型系统,但具有熟悉的语法。尽管功能强大,但其市场份额很小,意味着有用的库数量相对较少.

爪哇

Java当然是原始的JVM编程语言。它从C ++和C语言中获得了相当多的语法,但是使用起来更简单并且使用了面向对象的程序设计。它在整个行业中一致的标准和通用性使其成为JVM的可靠选择。但是,有些用户抱怨说它太冗长,并且具有一些令人困惑的功能.

Groovy

Apache Groovy是具有广泛且发达的生态系统的JVM的流行编程语言。几个库和框架(最著名的是Grails框架)的存在使它成为开发人员的通用选择。 Groovy是一种动态的,面向对象的脚本语言.

Xtend

Xtend提供了紧密的Java互操作性和丰富的工具。这种静态类型的JVM编程语言可编译为Java代码而不是字节码。这对于初学者和调试非常有帮助。一些开发人员抱怨大型类的编译速度慢.

扇形

这种用于JVM的面向对象的编程语言与其他类型的编程语言有所不同,就是放弃了用户定义的泛型的支持。但是,它确实包含三个可以参数化的内置类。想法是让程序员使用泛型,同时使整个类型系统保持简单.

其他语言的实现

下面的JVM编程语言是其他流行语言的所有实现,例如Lisp,Ruby,Python和PHP.

Lisp实现

有多种Lisp实现作为JVM编程语言。它们是:Armed Bear Common Lisp,Java的CL,Scheme和Clojure(我们在上面提到过).

方案

Scheme是Lisp的两个主要方言之一。这是一种功能性编程语言,具有简约的设计和强大的语言扩展工具。尽管它不能直接与JVM一起使用,但它的一些实现可以。这些包括:

  • BiglooJVM . 该Scheme编译器直接从Scheme编程语言提供Java虚拟机的字节码.

  • . 这是与Java虚拟机一起使用的Scheme语言的扩展.

  • 杰化学 是与Java接口的Scheme的实现.

武装的熊常见口齿不清

这种用于JVM的Common Lisp实现编程语言既具有解释器又具有编译器,通常称为ABCL.

Java语言

CLforJava是一个通用的Lisp实现,可在JVM上运行,并尝试在不需要外部功能接口的情况下提供对任何Java库的访问。近年来似乎已停产.

Clojure

上面我们在“最受欢迎”部分中提到了Clojure,因为它是JVM最著名的Lisp实现之一.

Arden2ByteCode

Arden2ByteCode于2010年开发,是为Arden语法创建的开源编译器。它在JVM上运行,将Arden语法转换为Java bytcode.

JGNAT(Ada)

JGNAT是Ada语言的免费编译器。它是GNAT编译器的一个版本,将Ada语言编译为Java字节码。 JGNAT最初是美国军方项目的一部分,此后便被拨款.

Micro Focus Visual COBOL

Micro Focus的Visual Cobol为面向未来的COBOL应用程序提供了一整套工具。其中之一是编译器,使开发人员可以将现有COBOL代码直接编译为Java虚拟机的Java ByteCode。.

ColdFusion标记语言(CFML)实现

ColdFusion标记语言使网站开发人员可以制作包含变量信息(图形或文本)的页面,这些信息是根据用户输入和其他变量而动态构建的。它具有Java虚拟机的多种实现,包括Railo,Lucee和Adoby ColdFusion.

  • Adobe ColdFusion 是一个快速的webapp开发平台。编程语言在Java虚拟机上运行。除了完整的脚本语言外,它还包括集成开发环境(IDE).

  • 露西 . Lucee是一种在JVM上运行的动态,轻量级脚本语言。它支持从简单到高度复杂的Web应用程序的快速开发。它最初是作为Railo的分叉推出的(下).

  • 莱乐 实际上是实现CFML脚本语言的服务器软件。它在JVM上运行。最初是作为Adobe ColdFusion的竞争对手而创建的,后来改用开源模型,可以在GitHub上使用。.

  • Open BlueDragon或简称OpenBD不是一种编程语言,而是一种Java CFML引擎,用于解释和处理CFML代码。它是完全开源的,对所有人免费.

JavaScript实现

JavaScript是一种轻量级且非常流行的编程语言,广泛用于网页中。尽管它的名字,它实际上与Java语言无关。 Java虚拟机上运行着一些JavaScript实现。.

  • 纳斯霍恩 是Oracle为JVM创建的JavaScript引擎。 Nashorn作为开放源代码解决方案于2012年在OpenJDK存储库中发布。它使开发人员可以将JavaScript嵌入JVM等Java应用程序中。 “ Nashorn”是德语单词“ Rhino”,是Mozilla管理的JVM的另一个JS实现。.

  • 犀牛 是Mozilla的JVM的JS编程语言。它是用Java编写的,通常嵌入Java应用程序中,以向最终用户提供脚本.

  • RingoJS 是针对JVM的多线程JS实现,主要用于服务器端应用程序。它使用高级JDBC驱动程序以及Java类库.

虚拟主机优惠券

寻找合适的Java主机?
对于Java,Tomcat或一般的JSP需求,InMotion Hosting是一个不错的选择。冗余硬件群集提供的可靠性远远超过许多主机。现在,您可以节省多达50%的计划。使用此折扣链接
得到交易.

Java级水银

Java级Mercury是Mercury的实现。它是一个生成Java源代码的编译器,然后可以将其编译为Java SE运行时环境的Java字节码。正如Opturion开发人员Julien Fischer指出的那样,虽然不是专门为用作JVM编程语言而编写的,但它可以执行此功能。 .

分量帕斯卡

组件Pascal未与下面的JVM Pascal实现分组的原因是它不是一个。而是Oberon-2的变体。它不允许程序员定义重载的方法,但是可以从Component Pascal代码中调用重载的方法.

Pascal实施

Pascal是一种过程编程语言,通常用于学习编程概念。它与C非常相似。它在1960年代后期开发,至今仍在使用,尤其是在其较新版本的Delphi和Oxygene中。它具有Java虚拟机的几种实现,包括下面列表中的实现。.

  • MIDletPascal , 专为开发J2ME Midlet而优化,可以将Pascal源代码转换为JVM的Java字节码.

  • 免费帕斯卡 是Pascal和Object Pascal的开源编译器。它可以针对多种处理器体系结构,包括AMD64和Java虚拟机。.

  • 氧气 是为.NET环境和Visual Studio创建的Pascal的新版本。它由编译器,与Visual Studio IDE的集成以及一些支持库组成.

栎属

Quercus是PHP的Java实现。它由Caucho Technology作为开源软件发布,带有几个PHP扩展和模块,例如JSON,PDO和MySQL。它提供Java服务和PHP脚本的紧密集成.

Rakudo Perl 6

Rakudo的Perl 6是针对Java虚拟机和MoarVM的编译器。它正在积极开发中,最新稳定版于2017年4月3日发布。它是Perl编程语言(用于开发Web应用程序的高级语言)的实现。.

序言实施

Prolog是一种高级编程语言,最初是为处理人工智能应用程序而创建的。它缺少LISP语言的广泛应用范围。尽管如此,它还是解决关系问题的强大工具 .

  • TuProlog 是Prolog的轻量级实现,它通过加载库围绕最小的内核和动态配置进行设计。它提供了Prolog与常见的面向对象语言(如Java,C#和F#)之间的紧密集成。.

  • JIProlog 是一个纯Java Prolog解释器,既开放源代码又跨平台。它提高了对Prolog标准的合规性,并通过添加Prolog功能来增强Java。.

  • XProlog 是为满足某些基于Java的代理的需求而开发的。通过添加算术,高级语法和更好的内存管理,它在WProlog上进行了改进.

人人

Renjin是基于JVM的R编程语言的解释器。它使R代码可以直接与多个JVM数据结构和库进行交互,而无需进行昂贵的数据传输或进程间通信.

Python实现

Python编程语言是一种解释型语言。它强调人类可读性,用空格而不是大括号。与其他语言(如C ++或Java)相比,它通常需要更少的代码行.

  • 吉顿 是Java虚拟机的Python实现。它的最新稳定版本于2015年中.

  • y 是Python解释器,可将源代码转换为机器代码,C或JVM字节码.

  • 邮编 是JVM上Python 3的一种快速,轻量级的实现。它使用Java JIT编译器,可在GitHub上使用.

Ruby实现

Ruby是一种开放源代码的动态编程语言,致力于提高生产力和简便性。其优雅的语法使其易于读写。 JVM的实现包括Mirah和JRuby.

  • 米拉 是JVM编程语言和Ruby的实现,它遵循以下原则:没有运行时库,简单的语法,宏和元编程,并且不会降低性能.

  • 红宝石 是针对Java虚拟机的Ruby的全线程,稳定,高性能实现。它独立于平台,提供了易于安装且迁移简单的解决方案.

NetRexx

NetRexx是一种受Java和Rexx语言启发的通用JVM开源编程语言。它旨在使编程“又轻松又有趣”。

哈巴科

Jabaco是为Java虚拟机开发的BASIC编程语言。源代码与VB6相似,被编译为与Java编程语言的输出“相似”的字节码。.

杰克

Jacl编程语言是用Java编写的Tcl的实现。生产就绪,足够稳定,可日常使用。它产生可与JVM一起使用的Java字节码.

JBasic

JBasic是一种BASIC语言解释器,完全用Java编写,可用于嵌入式和命令行。它支持传统的GW-BASIC样式语法,并提供了现代的扩展。它可以直接从外壳运行.

JVM转换器(创建Java代码的外部程序)

除了专门为Java虚拟机编写或从现有语言改编的编程语言外,还有一些程序可以将外部代码转换为Java。这些JVM转换器并非总是受到好评(请参阅有关ResearchGate的讨论,有关StackOverflow的讨论以及有关Quora的讨论).

有了这个警告,下面是一些更好的代码转换器:

  • C2J。该转换器将用C编写的程序转换为Java以与JVM一起使用.

  • CS2J要将Java虚拟机或其他应用程序的C#转换为Java,请尝试CS2J转换器.

  • C ++到Java转换器。此版本有一个免费版本,该文件夹一次最多可处理1000行,而代码片段一次最多可处理100行。完整版售价129美元.

  • P2J。这个Python到Java的转换器包括一个源转换器和一个调试器,并声称能够以75%的精度转换代码以与JVM一起使用。.

  • 没有特定的JavaScript到Java转换器,主要是因为尽管有名称,但它们是两种截然不同的语言。对于那些需要翻译JS以与Java虚拟机一起使用的人,此GitHub存储库展示了一种将JS对象包装为Java对象的简单方法.

  • PHP和Java是非常不同的语言。 (请参阅本讨论。)一段时间以来,P2J转换器尝试将PHP转换为Java以与JVM一起使用。但是,该项目已终止.

  • 可以使用Inline :: Java在Perl程序中包含Java代码(请参见本讨论)。要直接转换代码以供Java虚拟机使用,这里有一个实验性转换器 .

虚拟主机优惠券

在JVM托管方面寻找大量东西?
A2 Hosting在我们最近的速度和性能测试中排名第一。他们的托管计划支持Tomcat,JSP页面,Java servlet等。您可以节省高达50%的开发人员友好计划。使用此折扣链接
得到交易.

进一步阅读和相关资源

除了此处显示的JVM语言列表之外,请参见此GitHub存储库,以及我们不断增长的编程语言资源列表。.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me