1

現在、J2ME 環境 (CLDC 1.1 構成と IMP-NG プロファイル) 用の組み込みアプリケーションを作成しています。JVM ベースの言語 (Groovy、Scala、Clojure など) のすべての新機能に甘やかされて、自分のコードにそのうちの 1 つを使用することを検討していました。

ただし、言及されている言語のほとんどは、かなりまともな JVM 環境を必要とします。ほとんどのいわゆる「動的」言語では、VM にリフレクションが必要です。多くの人が注釈のサポートを求めています。上記の機能はいずれも J2ME では使用できません。

私が見つけたところによると、Xtendは実行可能なオプションのように見えます。そのコンパイラは、バイトコードではなくプレーンな Java を吐き出し、ランタイムのニーズにライブラリを必要としないからです。もちろん、生成された Java コードもいくつかの要件を満たす必要がありますが、Xtend Web ページはこの点で有望に見えます。

Xtend はクラスを実行するだけで、他には何もしません

Java でのインターフェース定義は、すでに素晴らしく簡潔です。それらは適切なデフォルトの可視性を備えており、他の領域でも改善する必要はほとんどありません. これらのファイルを処理できるすべての知識と優れたツールを考えると、それらを別の方法で定義する理由はありません。列挙型と注釈型にも同じことが当てはまります。

そのため、Xtend はクラスしか実行できず、Java で定義されているインターフェイス、注釈、列挙型に依存しています。Xtend は実際には Java を置き換えるものではなく、最新化するものです。

Xtend で生成されたコードを J2ME プラットフォーム用にコンパイルすることは可能ですか、それともそこで動作しない構造がありますか?

あるいは、J2ME で実行できる「豊富な」Java 修正言語をお勧めできますか?

更新:別のソース コードとして結果を生成する「コンパイラ」がトランスコンパイラと呼ばれることを知っているとランタイム ライブラリと特定の Java 機能を必要としないツールであるMirahを見つけることもできます。

4

2 に答える 2

1

Xtendで生成されたコードは、googleguavaを多用します。それがJ2MEと互換性がある場合は、Xtendが選択した言語である可能性があります。専用の開発キットを提供する他のプラットフォーム(Androidなど)での使用を妨げるものは何も知りません。

于 2012-05-08T21:28:14.783 に答える
1

Java ソースを生成できることに加えて、Mirah は最近 javac の --bootclasspath オプションのサポートを追加しました。これにより、LeJOS などの Java コア クラスの非標準バージョンに対してバイトコードを生成できます。

まだ少し新鮮ですが、さまざまな Java で使用する人が増えるとうれしいです。

于 2012-05-10T03:45:24.290 に答える