gcc 【GNU Compiler Collection】 GNU C Compilier
概要
gcc(GNU Compiler Collection)とは、GNUプロジェクトが開発・公開しているコンパイラ。様々なプログラミング言語のコンパイラを集めたパッケージとなっている。LinuxなどのUNIX系OSの多くで標準的に利用され、オープンソースのオペレーティングシステム(OS)ではOS自体のコンパイルに用いられることも多い。様々な言語に対応しており、標準ではC言語やC++言語、Objective-C、Fortran、Ada、Go言語、D言語、Rustのコンパイラが同梱されている。以前はJavaコンパイラ(GCJ:GNU Compiler for Java)も含まれていた。「gcc」はgcc内のCコンパイラの名称および実行ファイル名でもあり、C++コンパイラ「g++」のように、各言語用コンパイラはそれぞれ固有の名称を持つ。
gccは字句解析や構文解析などを行う「フロントエンド」、コードの最適化を行う「オプティマイザ」、CPU固有のコードを生成する「バックエンド」に分かれている。フロントエンドは言語ごと、バックエンドはCPUアーキテクチャごとに用意されている。
フロントエンドやバックエンドを開発・追加することで新しい言語やプロセッサに対応させることができ、標準のフロントエンド以外にもPascalやCOBOL、VHDLなど様々な言語用のフロントエンドが開発・公開されている。
バックエンドが標準で対応するCPUアーキテクチャの種類も豊富で、インテル(Intel)系プロセッサ(x86およびx86-64)のほか、ARM(AArch32およびAArch64)やPowerPC、AVR、RISC-V、z/Architectureなど様々な命令セットアーキテクチャ(ISA)の機械語プログラムを生成することができる。パソコンやサーバなど汎用コンピュータ向けのソフトウェア開発だけでなく、組み込み機器向けや家庭用ゲーム機向けの開発でも利用されることが多い。
gccは1987年から開発されており、GNUプロジェクトの主要な成果物の一つとして知られる。GPL(GNU General Public License)と呼ばれる利用許諾(ライセンス)に基いてオープンソースソフトウェアとして公開されており、誰でも自由に入手、利用、改変、再配布などをすることができる。