IT

MinGWについて調べていたら出てきた謎の用語「GCC」について調べてみた

GCCとは?

msys2とかMinGWについて調べていたら、GCCという用語が出てきてわからなくなったので調べてみました。

GCC(GNU Compiler Collection)は、GNUプロジェクトが開発・公開しているコンパイラのことです。

「なんだ、ただのコンパイラか」と思ったのですが、もう少しすごいもので、

GCCは様々なプログラミング言語のコンパイラを集めたパッケージです。

よく見ると名前にも「collection」とついていますね。

 

UNIX系OSではおなじみ

UNIX系OSではおなじみのコンパイラであり、標準で使われるのがGCCです。

GCCはパッケージなので、複数の言語のコンパイラで構成されており、

C言語やC++やJavaなどおなじみの言語のコンパイラが入っています。

 

もともとはC言語のコンパイラだったようですが、多言語を想定して設計されていたため、

新しい言語が開発されるに伴い、GCCはコンパイラとしてのその役割を拡大してきました。

私はC言語を使ったことがないのでわからないのですが、

Cをやる人にとってはおなじみのコンパイラなのかもしれません。

 

GNU

GCCのGは上述のとおりGNU(「グヌー」と読む、「グヌー」は牛のような動物の名前)の頭文字です。

で、気になるのが「GNU(プロジェクト)とは何ぞや?」ということ。

 

GNU(GNU is Not Unix!)とは、端的に言えば、オペレイティングシステムすなわちOSのことです。

Windows OSとかMac OSとかの「OS」です。

 

GNUプロジェクトは1984年にフリーソフトウェア財団により始められたプロジェクトで、創始者はリチャード・ストールマンという髭もじゃのおじさんです。

 

UnixライクなOSをフリーソフトウェアとして開発して配布しよう!」というキャンペーンを掲げ、GNUプロジェクトは実施されました。

ここで言う「フリーソフトウェア」とは、「無料」という意味ではなく「自由」という意味です。

「Unixとは違いフリーソフトウェアなんだぜ」「ソフトウェアの複製や使用を自由にしよう!」「コードを読んだり変更したりするのは自由だ!」という意味です。

これらの思想は、GNU一般公有使用許諾(GPL[General Public License])という形で言語化されています。

GNUを使ったソフトウェアを作るときは、だいたいGPLに出くわします。

 

GCCというコマンド名

やや蛇足ですが、GCCというのは、どうやらそのままコマンドの名前になっているらしく、オプションを付けてシェル上で様々な操作ができるようです。

こちらのサイト(千葉工業大学のデータライブラリです)が参考になりました。

 

 

まとめ

IT用語は(当たり前ですが)英語ばかりなので日本人にとっては理解が辛いですよね。

GCCもそうした言葉の一つですが、「GCCはコンパイラ!」と覚えておけば、最初の理解としては十分です。

ABOUT ME
てりたま
いつの間にかライターで生きるようになっていた人。真面目半分、不真面目半分で記事を書いてます。