1

-Xprint-icodeScala コンパイラーによって生成される中間コード (つまり、オプションを scalac に渡す)の正式な仕様または詳細な説明はありますか?

ありがとう。

4

2 に答える 2

1

scalacから ASM のバイトコード表現GenBCodeに直接移行する新しいバックエンドの導入により、icode 形式は廃止されます。Treeもし私があなたなら、それを学ぶことに時間を投資しません。

cleanup代わりに、backend の前の最後のフェーズである after instead( )を印刷することをお勧めします-Xprint:cleanup。scalac ツリーは、基本的に Scala 構文を使用した Java コードであるため、非常に理解しやすいものです。

とはいえ、あなたが を扱うことに固執するなら、それicodeに関する実際の文書はないと思います。しかし、JVM バイトコードとほぼ 1 対 1 で対応しています。つまり、クラス、フィールド、およびメソッドがあります。メソッドの内部には、スタックベースの命令セットがあります。

于 2015-05-16T23:08:37.887 に答える
0

icode のドキュメントについては、こちらを参照してください (35 ページ): http://infoscience.epfl.ch/record/150270/files/EPFL_TH4820.pdf

于 2015-07-15T16:27:21.877 に答える