GCCコンパイラについて

アレサ「それでは 前から気になっていたGCCコンパイラについて


すこし調べてみましょう。


GCCコンパイラは


Free Software Foundationという開発元によってつくられています。


以下ウィキペディアより


GCC標準パッケージには


C、C++、Objective-C、Objective-C++、Fortran、Java、Ada、


Go のコンパイラ並びにこれらのライブラリが含まれている。



アレサ「ここでGoもGo言語というコンピュータ言語です。」


当初はCコンパイラとして開発し、GCCは GNU C Compiler を意味していた。しかし、もともと多言語を想定して設計しており、 GNU C Compiler と呼ばれていたときでも多くの言語に対応していた。現在でも GNU C Compiler の意味で「GCC」と呼ぶことも多い。ちなみに GNU C Compiler の実行ファイルの名称もgccである。なお、GNU C++コンパイラをG++、GNU JavaコンパイラをGCJ、GNU AdaコンパイラをGNATと呼ぶ。

CコンパイラとしてのGCCは、ANSI規格 (ANSI X3.159-1989) にほぼ適合するC言語コンパイラ処理系であった。登場当初の時点では、OS標準に付属するCコンパイラがANSI規格に適合していない部分が多いものがあった。そのため、GCCはANSI規格を広める役割を果たした。GCC自身はK&Rの範囲内のC言語で記述していたので、OS付属のコンパイラでコンパイルできた。ただし、GNU拡張という独自の仕様もあり、GCCでコンパイルできるものがANSI適合コンパイラでコンパイルできるとは限らない。


影響と評価

貢献

GCCはそれ自身が有用なフリーソフトウェアだが、OSやDOSエクステンダ(DJGPP、EMXなど)を構築するための基盤ツールとしても非常に有用であり、商用・非商用を問わず多くの環境で標準的なCコンパイラとして採用されている。特にLinuxやFreeBSDなど、フリーソフトウェアとしてのOSは、もしGCCが存在しなかったならば大きく違ったものになっていたであろうと言われている。

また、多くの組み込み系 OS や、ゲームの開発環境でもGCCを採用している場合も多い。これは、クロス開発を容易なものとするGCCの広範なプロセッサへの対応が評価されていることによる。

その一方で、現状では生成コードの最適化において、特定のプロセッサへの最適化を図る商用コンパイラに水をあけられているのが実情である。特に科学技術演算で多用されるベクトル演算機構への対応や、特定のベンチマークなどでは顕著であった。これは多様な環境に対応することを第一とし、個別のプロセッサ向けの最適化を追求してこなかったことも大きな要因であったが、最近ではこれを改善するための試みも始められている。(最適化を参照)


アレサ 「多様な環境に対応することを第一とし、ですか


素晴らしい理念だと思います。


しかも


        『『『 無料 』』』



                       なんです。




特定のプロセッサへの最適化を図る商用コンパイラに


水をあけられているのが実情である。




ようですが


いずれ最高のコンパイラになることをお祈りしています。


バッファローマークのGCCコンパイラさんでした。」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます