GNUコンパイラコレクション wikipedia|無料辞書
◆ 概説
当初は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付属のコンパイラでコンパイルできた)。
複数プログラミング言語・複数アーキテクチャへの対応とクロス開発対応・移植性の高さ、また何よりGPLの下、ソースコードを誰でも参照でき変更できることが、GCCを他のコンパイラと異なるものにしている。
◆ 構成
GCCは通常のコンパイラと同様にフロントエンド部、最適化部、バックエンド部から構成される。
フロントエンド部は
字句解析、
構文解析などを行い、対応言語ごとに用意されている。たとえばC++フロントエンド、Javaフロントエンドなどがある。
バックエンド部の
コード生成部(コードジェネレータ)、および
最適化部(オプティマイザ)は全言語で共通である。したがってGCCの対応の言語同士の間では、生成コードの質や対応するCPUの種類は原理的に同じになる。なお、フロントエンドおよびバックエンドの間でやりとりされる中間形式として
RTL (Register Transfer Language) が使用される。
CコンパイラとしてのGCCの開発のために、構文解析部生成系
bison、字句解析部生成系
flexが開発された。これらを使用してGNU Cコンパイラその他の各種フロントエンドは構築されている。これらは単独のフリーソフトウェアとしても有用なものである。
GCCはバージョン4から中間形式が2つ追加された。まず、各言語は通常フロントエンド言語の
木構造を保持した共通中間形式の
GENERICに変換されその後
GIMPLEという中間形式で木の最適化
SSAをおこなってからRTLの最適化がおこなわれる。また、CやC++のコンパイル時にフロントエンドの構文解析、字句解析においてbisonやflexを使用しなくなった。
◆ GCC の貢献
また、多くの
組み込み系 OS や、ゲームの開発環境でも GCC を採用している場合も多い。これは、クロス開発を容易なものとするGCCの広範なプロセッサへの対応が評価されていることによる。
その一方で、現状では生成コードの最適化において、特定のプロセッサへの最適化を図る商用コンパイラに水をあけられているのが実情である。特に科学技術演算で多用されるベクトル演算機構への対応や、特定のベンチマークなどでは顕著であった。これは多様な環境に対応することを第一とし、個別のプロセッサ向けの最適化を追求してこなかったことも大きな要因であったが、最近ではこれを改善するための試みも始められている。(最適化を参照)
◆ GNU Cコンパイラ拡張
GNU C コンパイラの特徴のひとつは、前述のようにANSIあるいはISO等の標準への準拠である。もうひとつの特徴は独自の拡張機能である。このような拡張を「GCC拡張機能」とよぶ。GCC拡張機能は数多いが、多引数
マクロ、基本型としての
複素数型、式の演算結果としての左辺値、初期化式の拡張、Cでのインライン関数定義、
ネストした関数定義、ラベルに対する&
演算子の適用などがある。
このような拡張は、
C99における標準Cの拡張として逆に取り込まれたものも多い。
言語機能の拡張のほかに、標準外機能としてasm文によるインラインアセンブラの機能はユニークである。ただし、GCCにおいてはこのインラインアセンブラ機能を利用して記述したコードに対しても最適化が行われる(プログラマが意図して
アセンブリ言語を用いて書いたとしても、その通りのコードが出力されない可能性がある)点に注意が必要である。
◆ 最適化
GCCは高度な最適化を行うが、CPUベンダやRISCワークステーションメーカが提供するコンパイラと比べると見劣りする場合もある。基本的にマルチアーキテクチャで機種依存しない最適化が中心となるため、CPUの決め打ちを行うコンパイラと比べてやや不利な立場といえる。
・GNUコンパイラコレクション page1
■GNUコンパイラコレクションを他のサイトで調べる
@[GNUコンパイラコレクション]暇つぶしマスター
A[GNUコンパイラコレクション]性病マスター
B[GNUコンパイラコレクション]ダイエットNAVI
C[GNUコンパイラコレクション]価格比較マスター
D[GNUコンパイラコレクション]肛門科マスター
E[GNUコンパイラコレクション]産婦人科科マスター
F[GNUコンパイラコレクション]結婚情報マスター
■着うたLINK関連検索
■着うたLINKWikipedia情報
おすすめサイト
■ダイエット
美容・ダイエットならオマカセ!ダイエットNAVI
■性病
性病?お悩み・病院検索は性病マスター
■暇つぶし
いま、ヒマ?暇つぶしマスターで暇つぶし★
■価格比較
気になる商品の価格を比較!価格比較マスター
■懸賞
カンタン応募で豪華商品が当たる!アタックchance!
■バイト
駅チカバイトなら楽ラクバイト.com
■求人
地域を選んでバイト、仕事を探せる!!バリバリ仕事!.com
■アルバイト
バイトをこだわり条件で探す!こだわりキャリア.com
■求人情報
自分に合ったバイト探し★Myピッタリ仕事.com
■バイト
"資格"でバイト探し!天職さがそ!.com
■バイト
いいバイト、あるある!aruアルバイト.com
■懸賞
アタックchanceで懸賞チャレンジ!
■産婦人科
病院探し!病気相談なら産婦人科マスター
■出産
妊娠!出産!育児!赤ちゃんマスターでお悩み解決!
■外為
外為・為替レートをチェック!外為マスター
■結婚
結婚マスター!結納・両親・マリッジブルーノお悩みに…
■先物
先物・取引!詳しくなる!先物マスター
■資格
資格!キャリアアップ!資格GETマスター★
■小説
小説・書籍ならオマカセ!小説マスター
■スポーツ
スポーツ!健康!デトックス!スポーツマスターにオマカセ!
■葬儀
お葬式・葬祭のことなら・・・葬儀マスター
■痩身
ダイエット・デトックス・痩身!スリムGETマスター
■脱毛
パーフェクトBODY目指せ!脱毛マスター
■着うた
最新!人気!定番!うたマスターで着うたCHECK!
■デコメ
キラ系かわいいデコメCHECK!デコメマスター
■転職
履歴書・マナー・転職テク!就職情報なら転職マスター
■バイク
ハーレー!改造!バイクマスターにオマカセ!
■派遣
派遣!転職!キャリアアップ!転職マスター
■ペット
カワイイ犬・猫を飼いたい!ペットマスター
■豊胸
薄着の季節…お悩み解決!豊胸マスター
■包茎
包茎のお悩みなら…包茎マスター
■レシピ
今晩のおかず…料理・レシピならレシピマスター
■モバグラMIXの人気キーワード
モバグラMIXの人気キーワード一覧
■外為
外為情報をいち早く!外為LINK
■求人
転職・就活なら求人LINKにオマカセ!
■金融
金融業界の勉強するなら!金融LINK
■車
TOYOTA!HONDA!BMW!車のコトなら車LINK
■モバグラMIXの人気キーワード2
モバグラmixの人気キーワード2
■モバグラMXIの人気キーワード3
モバグラMIXの人気キーワード3
■モバグラMIXの人気キーワード4
モバグラMIXの人気キーワード4
■モバグラMIXの人気キーワード5
モバグラMIXの人気キーワード5
■モバグラMIXの人気キーワード6
モバグラMIXの人気キーワード6
■モバグラMIXの人気キーワード7
モバグラMIXの人気キーワード7
■モバグラMIXの人気キーワード8
モバグラMIXの人気キーワード8
■モバグラMIXの人気キーワード9
モバグラMIXの人気キーワード9
■モバグラMIXの人気キーワード10
モバグラMIXの人気キーワード10
■モバグラMIXの人気キーワード11
モバグラMIXの人気キーワード11
■モバグラMIXの人気キーワード12
モバグラMIXの人気キーワード12
■モバグラMIXの人気キーワード13
モバグラMIXの人気キーワード13
■モバグラMIXの人気キーワード14
モバグラMIXの人気キーワード14
■モバグラMIXの人気キーワード15
モバグラMIXの人気キーワード15
■モバグラMIXの人気キーワード16
モバグラMIXの人気キーワード16
■モバグラMIXの人気キーワード17
モバグラMIXの人気キーワード17
■車査定
車査定.com
■献立レシピ1
レシピが月額99円
■献立レシピ2
レシピが月額99円
~うた-LINK.com (05/26update) トップへ
(C)うた-LINK.com