×
言語処理系と開発実行モデル

コンパイラは、単に人間が書いたソースコードを機械語に一括翻訳するだけのプログラムではありません。その翻訳プロセスは非常に複雑で、複数の段階(フェーズ)を経て慎重に処理を進めます。一般的なコンパイラの処理は、「字句解析」「構文解析」「意味解析」「最適化」「コード生成」の5つのステップに大別されます。
まず「字句解析」では、ソースコードを英単語や記号といった最小の意味を持つ単位(トークン)に切り分けます。次に「構文解析」で、そのトークンの並びがプログラミング言語の文法ルールに正しく従っているかをチェックし、プログラムの構造を示す構文木(ツリー構造)を作成します。続く「意味解析」では、変数のデータ型が一致しているか、未定義の変数が使われていないかなど、文脈上の矛盾を検査します。
そして、コンパイラの最も重要な役割の一つが「最適化」です。これは、プログラムの実行速度をさらに速くしたり、メモリの使用量を減らしたりするために、無駄な処理を省略したり、効率の良い計算手順に並べ替えたりする高度な処理です。最後に「コード生成」のステップで、対象となるCPUやOSが直接理解できる最終的な機械語(またはアセンブリ言語)へと変換します。
このように、コンパイラは事前の翻訳に時間と手間をかける分、徹底的なエラーチェックと高度な最適化を行うため、完成したプログラムは非常に高速かつ安定して動作するという強力なメリットがあります。