コンパイラコンパイラ 【compiler compiler】
概要
コンパイラコンパイラ(compiler compiler)とは、あるプログラミング言語を機械語に変化するコンパイラを、自動的に生成するプログラムのこと。コンパイラを作るためのコンパイラという意味でこのように呼ばれる。人間が読み書きしやすい高水準プログラミング言語で書かれたプログラムはそのままではコンピュータで実行することができないため、「コンパイラ」(compiler)という変換プログラムで機械語などの実行可能形式のプログラムに変換される。
コンパイラは言語ごとに存在するが、新しい言語に対応したコンパイラの開発には高い技術力が必要で手間もかかる。構文解析などの機能には似た部分があるため、言語の文法や語彙などの定義から、ある程度自動的にコンパイラを作成するプログラムが研究・開発されるようになった。これをコンパイラコンパイラという。
よく知られるコンパイラコンパイラに「yacc」(yet another compiler compiler)というプログラムがあるが、これはコンパイル処理の一部である構文解析(パース)を行うプログラム(パーサ)を言語の構文規則を元に自動生成するもので、正確には「パーサジェネレータ」(parser genrerator)と呼ばれる。
(2024.8.31更新)