コンパイラ
設計
字句解析, 構文解析, コード生成 のステップに大別でき、字句解析は 字句規則から字句解析器を生成する lex、構文解析は 構文規則から構文解析器を生成する パーサジェネレータ というプログラムが広く使われている。 また、大規模なコンパイラは大抵、複数の処理段階に分割して開発される。このときの分割の単位として バックエンド, ミドルエンド, フロントエンド という単位が利用されていて、起源はカーネギーメロン大学での Production Quality Compiler-Compiler Project というプロジェクトだったようだ (ただし、ミドルエンドは今日日滅多に使われない、とのこと)。
フロントエンドとバックエンドの分割点については定義が曖昧らしい。フロントエンドは、高級言語から中間表現に変換する部分 まで、バックエンドは、中間表現から成果物 (オブジェクトコード など)に変換する部分 まで、を指している場合が多そうな印象を受ける。 参考