javac コンパイルにはどのようなプロセスが含まれますか?
Java コンパイル プロセスは主に次のステップに分かれています:
1 . 字句解析 : ソース コード内の文字 (さまざまなキーワード、変数など) を、単一文字に対するプログラム作成の最小単位であるトークンのセットに変換します。トークンはコンパイル プロセスの最小単位です。
2. 構文分析: トークンのコレクションを抽象構文ツリーに構築します。構文ツリーの各ノードは、コード内の構文構造 (パッケージ、タイプ、インターフェイス、修飾子など) を表します。
3. シンボル テーブルを入力します: シンボル テーブルは、シンボル アドレスとシンボル情報のセットで構成されるテーブルです。シンボル テーブルを埋めるプロセスを終了すると、各抽象構文ツリー (および package-info.java) の最上位ノードを含む保留リストが生成されます。
4. プラグイン注釈プロセッサは注釈を処理します: 注釈プロセッサは、抽象構文ツリーの任意の要素を追加、削除、または変更できます。したがって、注釈プロセッサが構文ツリーを変更するたびに、注釈プロセッサが構文ツリーを変更しなくなるまで、ステップ 1、2、および 3 が再実行されます。各サイクルプロセスはラウンドと呼ばれます。
5. セマンティック分析: 構文ツリー構造が正しいソース プログラムを状況に応じてレビューします。
注釈チェック: 変数が宣言されているかどうか、変数と代入型が一致しているかどうかなど、および定数の折りたたみを含みます。
データと制御フローの分析: プログラム コンテキスト ロジックのさらなる検証。使用前に変数に値が割り当てられているかどうか、メソッドに戻り値があるかどうか、例外が正しく処理されるかどうかなどが含まれます。
6. 構文シュガーのデコード: 高度な構文 (ジェネリック、変数パラメーター、アンボックス化など) を基本的な構文構造に変換します。これらは、仮想マシンの実行中はサポートされません。高度な構文。
7. バイトコードの生成: 少量のコード追加と変換作業を実行しながら、構文ツリーとシンボル テーブルの情報をバイトコードに変換してディスクに書き込みます。
上記の内容の大部分は、「Java 仮想マシンの詳細な理解」 -- Zhou Zhiming からの抜粋です。
推奨チュートリアル: 「java チュートリアル 」
以上がjavac コンパイルにはどのようなプロセスが含まれますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Dreamweaver Mac版
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









