更新日:2004-04-01、趙
Cは、コンパイラの数からでも分かりますが、これまでもっとも成功したプログラミング言語です。以下、いくつか特徴のあるコンパイラをご紹介します。
1)gcc(GNU Compiler Collection)
フリーでオープンソース(だれでもソースを見ることができる!)にもかかわらず、速度だけでも下記のiccに近いか匹敵できるレベルまで進化してきたgccは、本キットに収録されています。60種類以上のプラットフォームをサポートしています(世界記録。逆にサポートしないプラットフォームがあるか のように気になってしまいます)。
x86というシリーズのIntel製CPUまたはそれの互換品を使っているPCに限っては、当然ながらIntelが売っているコンパイラが一般に最高の性能をもっています。Windows、Linux等3、4種類のプラットフォームをサポートしています。商用、ただし、個人使用に限り、無料のLinux版があります(そうしないと使ってもらえないかな、gccがあるから)。
厳密に、これは開発環境であり、コンパイラではないのですが、コンパイラは、名前があるとしたら cl かな?という感じで、Windowsでしか動かないプログラムを作るのに得意な商用ソフトです。個人使用に無料ダウンロード版があります(もちろんVisual C++ではなくてclですが、念のため)。
一時世界最高の開発環境Turbo C(私はこれでCを始めました)を作り出したBorlandも有名です。近年MSに圧倒されたみたいですが、ファンが結構多い(他の選択肢がほぼないため?)。Windows専用、個人使用には無償でダウンロードできます。
その他、thefreecountry.comのリストに約30個(無償)コンパイラを収録しています。
このキットのまとめに当たり、ついでにコンパイラについて簡単に考察してみました。実行ファイルの性能(サイズ、速度)は、当然ながらコンパイラの性能次第ですからね。
以下、私が参考のために サンプルソースhello.cを無料で入手できるコンパイラでコンパイルし、その結果をまとめたものです。実験は、それぞれのデフォルト設定で最適化とかしていないことを強調しておきます(まあ、hello.cに対してはやっても変わらないでしょうが)。参考程度ぐらいに考えてください。もっと詳しい比較は、Googleで調べるといい。
#include <stdio.h> int main(void) { printf("Hello, world.\n"); printf("こんにちは。\n"); return 0; }
gcc(bcc、cl)は、コマンドラインでgcc(bcc32、cl)hello.c 参考のため、Visual C++でもRelease版としてコンパイルしました。
データの一行目は、生成した実行ファイルのサイズ(単位:バイト)、二行目は、MinGW日本版のstripを使ってシンボルを切り捨てた後のサイズです。
gcc(MinGW) gcc(MinGW日本版) cl bcc Visual C++ v3.3.3 v3.3.3 v13.10.3077 v5.5.1 6.0 --------------------------------------------------------------------- 14,627 404,651 36,864 52,224 40,960 5,120 5,632 30,208 51,712 34,304
結果は一目瞭然。。。ですが、よく分からない人もいるでしょう。簡単に言うと、二行目は、最終版として配布可能ファイルのサイズです。速度のことを考えなければ、小さければ小さいほどよいわけ。これで分かりますね。因みに、Linux(Fedora Core 1)でgcc v3.3.2でコンパイルした結果は、それぞれ 4,667、2,900になっています。
サイズよりは実行速度のほうがもっと重要の場合もよくありますが、それの比較は簡単ではない。HelloWorldのような簡単なプログラムでは、まず比較することができませんよ。やっぱり、Googleとかで調べてください。