3

著者がOolongと呼ばれる「JVM用のアセンブリ言語」を提供しているJoshuaEngelの本による「ProgrammingforJavaVirtualMachine」を読んでいます。

私が理解している限り、これはJavaバイトコードにコンパイルされ、元のJavaバイトコードに非常によく似た言語です(そこでは多数のバイトコードオペコードが使用されています)。もしそうなら、なぜそれはアセンブリ言語と呼ばれるのですか?それは低水準言語であり、バイトコードのように見えるからですか?

もう一つの質問はジャスミンについてです。Wikipediaによると、これは「Java仮想マシンの命令セットを使用して人間が読める形式のアセンブラのような構文からクラスファイルを作成するための無料のオープンソースアセンブラ」です。Jasminファイル(拡張子も.j)の構文は、Oolongの構文のように見えます。そこで使われていますか?

4

3 に答える 3

5

Oolong は JVM のアセンブリ言語です。

...なぜアセンブリ言語と呼ばれるのですか?

(たとえば)ウィキペディアで「アセンブリ言語」の意味を調べるのが最善です。これは本質的に、 「ステートメント」とターゲット マシンのマシン命令との間で直接的な 1 対 1 のマッピング1を持つ言語です。JVM をターゲット マシンとして表示する場合、OOlong はこの説明と一致します。(ウーロン文字列と JVM バイトコード命令の間には 1 対 1 のマッピングがあります。)

Jasmin ファイル (.j 拡張子もある) の構文は、ウーロンの構文のように見えます。そこで使われていますか?

Oolong の構文は「Jasmin に基づいている」というソースを見たことがありますが、構文を詳細に説明しているスタンドアロンのドキュメントは見つかりません。

Oolong を見ることに興味がある場合は、この SO の質問に、どこからダウンロードするかについての詳細があります。


1 - 単純化しすぎています。一部のアセンブリ言語は、1 つのソース ステートメントを複数のターゲット命令にマップできる「マクロ」をサポートしています。ウィキペディアのリファレンスを読んでください。

于 2012-06-21T06:53:40.353 に答える
-1

ウーロン茶は中国茶で、名前は重要ではありません。Java 言語は Java コンパイラによってコンパイルされることに注意してください。Java Bytecode はアセンブリ言語ではありませんが、(JVM)Java 仮想マシンへのアセンブリ言語と見なすことができます。

于 2012-06-21T06:38:43.120 に答える