J2ME平台的JVM语言

时间:2012-05-08 20:11:15

标签: java-me jvm-languages xtend mirah

我目前正在为J2ME环境编写嵌入式应用程序(CLDC 1.1配置和IMP-NG配置文件)。被基于JVM的语言(Groovy,Scala,Clojure,你所说的)中的所有新功能所破坏,我正在考虑将其中一个用于我的代码。

但是,大多数提到的语言需要相当不错的JVM环境。大多数所谓的“动态”语言都要求VM进行反射。许多人要求提供注释支持。 J2ME中没有上述功能。

根据我的发现,Xtend看起来像一个可行的选项,因为它的编译器吐出普通的Java,而不是字节码,并且不需要任何库来满足运行时需求。当然,生成的Java代码也必须满足一些要求,但Xtend网页在这方面看起来很有希望:

  

Xtend只做类而不做其他事

     

Java中的接口定义已经很简洁了。它们具有良好的默认可见性,而且在其他领域也几乎无法改进。鉴于所有知识和能够处理这些文件的强大工具,没有理由以不同的方式定义它们。这同样适用于枚举和注释类型。

     

这就是为什么Xtend只能执行类并依赖于Java中定义的接口,注释和枚举。 Xtend实际上并不是要取代Java,而是要对它进行现代化。

我是对的,可以为J2ME平台编译Xtend生成的代码,还是有一些不能在那里工作的构造?

或者,您是否可以推荐可以在J2ME上运行的任何其他“丰富”Java修改语言?

更新:知道“编译器”生成结果作为另一个源代码称为 transcompiler ,人们也可以找到Mirah,这个工具不需要运行时库和特定的Java功能。

2 个答案:

答案 0 :(得分:1)

Xtend的生成代码大量使用谷歌番石榴。如果它与J2ME兼容,则Xtend可能是您选择的语言。我不知道任何阻止在提供专用开发工具包(例如Android)的其他平台上使用它的事情。

答案 1 :(得分:1)

除了能够生成Java源代码之外,Mirah最近还添加了对javac的--bootclasspath选项的支持,该选项允许您针对非核心版本的Java核心类生成字节码,例如: LEJOS。

它仍然有点新鲜,但让更多人在不同的javas上使用它会很高兴。