最適化コンパイラ 【optimizing compiler】

概要

最適化コンパイラ(optimizing compiler)とは、コンパイラの種類の一つで、プログラミング言語コード機械語に変換する際に、実行速度やメモリ容量が優れたコードに置き換える機能を内蔵したもの。

人間が読み書きしやすい高水準プログラミング言語で書かれたプログラムはそのままではコンピュータ実行することができないため、「コンパイラ」(compiler)という変換プログラム機械語などの実行可能形式プログラムに変換される。

単純なコンパイラ高水準言語で書かれた処理を忠実に実行する機械語コードを生成するが、処理の内容を変えずに、より高速に実行したり、より少ないメモリ容量で動作するコードに置き換え可能な場合がある。より優れたコードに置き換える操作を「最適化」(optimization)という。

例えば、ソースコード中に「int n1Week=7*24*3600*1000;」といった定数の計算を行うコードがあるとき、本来なら3回乗算を行う機械語コードに変換されるが、最適化が有効な場合は計算結果である「604800000」を変数代入するコードが生成され、実行時の計算回数を減らすことができる。これを「定数畳み込み」(constant folding)という。

このような最適化テクニックには多種多様なものが存在し、言語やコンパイラによって対応している手法が異なっている。現代の実用的なコンパイラのほとんどは何らかの最適化を行うよう設計されているため、他と区別する意味で「最適化コンパイラ」という名称を用いることはほとんどなくなっている。

なお、コンパイラ最適化によって開発者が意図しない動作を引き起こすことがあり、バグの原因となることがある。多くのコンパイラは、最適化を行うかどうか、どのような最適化手法を用いるかについてオプションなどで指定することができるようになっている。

(2024.8.31更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。