Title:言語プロセッサ

アセンブラ アセンブリ言語を機械語に翻訳する。
コンパイラ 高水準言語を機械語の目的プログラムを生成する。
インタプリタ その都度、翻訳しながら実行する。
プリプロセッサ 別の高水準言語に変換。
セルフコンパイラ 現在のコンピュータの目的プログラムを生成する。
クロスコンパイラ 異なるコンピュータの…
その他の言語プロセッサ
ジェネレータ(生成系) プログラム生成
シミュレータ(実行系) 他のコンピュータ用のプログラムの命令を解読しながら実行する言語プロセッサ
エミュレータ シミュレータをするハードウェアを言う。


コンパイラの処理手順

字句解析
構文解析 文法エラー
意味解析 逆ポーランド、中間コード
最適化
コード生成 目的プログラムとして出力するコードを生成する。


コンパイラの最適化手法

実行速度からみた最適化 ・べき乗は乗算、乗算は加算に変換する。
・終始更新されることがない変数は、定数で置き換える。
・関数をそれを呼び出す本体に組み込み、関数の呼出し時間を節約する。(関数のインライン展開)
・ループ中で値の変わらない式は、ループの外に出す。
・ループアンローリング(ループ展開)
コードサイズからみた最適化 ・プログラムの冗長部分を排除する。
・変数の初期値や定数に共通部分があれば、それをまとめる。
実行速度およびコードサイズからみた最適化 ・変数をレジスタに割り当てる。
定数の畳み込み。
不要な演算を書応力する。
リンク(連携編集) make
コンパイル指示ファイル(効率化)