プログラム

コンパイラとは

コンパイラ

コンパイラとは

コンパイラ(英:compiler)とは、人間が解釈しやすい高水準言語で書かれたソースコードを、コンピュータが解釈しやすい低水準言語のコード(機械語)を変換するソフトウェアのことです。

コンパイルとは

プログラミング言語は人間が理解しやすいように作られているため、コンピュータはプログラミング言語で書かれたプログラムを理解することができません。

そのため、コンピュータが理解できる機械語(バイナリコード)に変換します。この変換工程のことをコンパイル(comple)といいます。

コンパイラによって変換される前のコードを「ソースコード」と呼び、変換後のコードを「オブジェクトコード」と呼びます。

逆コンパイラとは

逆コンパイラとは、コンパイラとは逆にコンピュータが理解できる機械語(バイナリコード)を、高水準言語によるソースコードに変換するソフトウェアのことです。

逆コンパイラで、機械語(バイナリコード)を元に戻す変換工程のことを逆コンパイル(decompile)といいます。

逆コンパイラとは

 

逆という名前ですが、逆コンパイルすることで元のソースコードが完全に復元するわけではありません。

コンパイルする時に、ソースコードに記述されていた変数名や関数名などのシンボル、コメントなど実行時に不要な情報は削除されているため、逆コンパイルしてもそのような情報は復元されません。

また、ソフトウェアの開発元によっては、公開されているプログラムに対して、逆コンパイル等のリバースエンジニアリングを行うことを禁じていることも多いです。