-Xprint-icode
Scala コンパイラーによって生成される中間コード (つまり、オプションを scalac に渡す)の正式な仕様または詳細な説明はありますか?
ありがとう。
-Xprint-icode
Scala コンパイラーによって生成される中間コード (つまり、オプションを scalac に渡す)の正式な仕様または詳細な説明はありますか?
ありがとう。
scalacから ASM のバイトコード表現GenBCode
に直接移行する新しいバックエンドの導入により、icode 形式は廃止されます。Tree
もし私があなたなら、それを学ぶことに時間を投資しません。
cleanup
代わりに、backend の前の最後のフェーズである after instead( )を印刷することをお勧めします-Xprint:cleanup
。scalac ツリーは、基本的に Scala 構文を使用した Java コードであるため、非常に理解しやすいものです。
とはいえ、あなたが を扱うことに固執するなら、それicode
に関する実際の文書はないと思います。しかし、JVM バイトコードとほぼ 1 対 1 で対応しています。つまり、クラス、フィールド、およびメソッドがあります。メソッドの内部には、スタックベースの命令セットがあります。
icode のドキュメントについては、こちらを参照してください (35 ページ): http://infoscience.epfl.ch/record/150270/files/EPFL_TH4820.pdf