• ベストアンサー

プリコンパイラとは?

コンパイラの意味はわかるのですが、プリコンパイラが何をするのかがわかりません。プリが「~前の」という接頭語ということまでは調べたのですが・・・。 ご存知の方、教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • bob
  • ベストアンサー率50% (52/103)
回答No.4

プリコンパイラとは名前の通り「コンパイラの前に使うもの」です。 コンパイラ型の言語ではまずソースをテキストファイルに人間が書き、コンパイラを通して実行ファイルを作っていきます。しかし、コンパイラが理解できるソースを直接全て人間が書くのはしばしば効率が悪かったり理解しづらかったりします。 そこで、ソースを書く時は人間に便利な仕様にしておいて、プリコンパイラでそれをコンパイラが理解できるソースに書き直すということをするわけです。 テキストエディタ  出力:人間が書いたソース  ↓ プリコンパイラ  出力:コンパイラが理解できるソース  ↓ コンパイラ (出力:オブジェクトファイル) (↓            ) (リンカ          )  出力:実行ファイル Cコンパイラとよく組み合わせて使われるプリコンパイラを挙げてみます。 Cプリコンパイラ  他のみなさんが既に挙げているように、主に#で始まる行を処理します。  いろいろなソースで共通して使われる部分を共有するための仕組み(include)や、マクロ処理、コンパイル時の条件分岐等、様々な処理をします。 C++プリコンパイラ  C++のソースをCのソースに変換します。本来C++コンパイラは存在しないのでCソースに変換してからCコンパイルにかけます。しかし、最近はC++コンパイラも存在するのでその場合はCプリコンパイラと大差ないと思います。 f2cプリコンパイラ  フォートランのソースをCのソースに変換します。需要の関係上Cコンパイラの研究が極端に進んだため、フォートランコンパイラを用意して使うよりもCソースに変換してからCコンパイラでコンパイルした方が性能がよかったり、メーカー側の開発環境の準備コストが低くすむといった現象の産物のようです。 この他の言語でも、コンパイラごとに1つ以上のプリコンパイラがあるといっても過言ではないと思います。

hiro1120
質問者

お礼

ご回答ありがとうございます。 コンパイラごとに1つ以上のプリコンパイラがあるんですね。 参考になりました。 本当にありがとうございます。

その他の回答 (3)

  • kokucho81
  • ベストアンサー率61% (157/255)
回答No.3

プリコンパイラは、プリプロセッサと同意です。 元来、例えば、C/C++コンパイラは、入力されたソースコード中に、 #define や #pragma などの記述があると、解析することが出来ません。 このような、元来コンパイラが解析することが出来ない「拡張された文法」 をコンパイラが理解できる「通常仕様のプログラムソースコード」に 変換する作業を行うのがプリコンパイラ(あるいはプリプロセッサ)です。

hiro1120
質問者

お礼

回答ありがとうございます。 コンパイラが解析することが出来ない「拡張された文法」を理解できるように変換することだったんですね。 とても分かりやすかったです! ありがとうございました。

  • coolguys
  • ベストアンサー率18% (351/1917)
回答No.2

#付く処理のことですね。 先にコンパイルしておく 自分で、記述した処理ではないですよね。 言い方はちょっと変かもしれないですが、 自分のソースコードをコンパイルする前に お約束として記述したようなことをコンパイルする という、感じですかね。

hiro1120
質問者

お礼

回答ありがとうございます。 皆さん本当に回答早いですね・・・。 とっても嬉しかったです。 また何かありましたらよろしくお願いします。

  • akino4
  • ベストアンサー率18% (35/185)
回答No.1

C言語の場合#includeなど#がつく部分をしょりします

hiro1120
質問者

お礼

こんなに早く回答いただけるなんて感激です。 ありがとうございます。 プログラムに関して本当に無知なのでこれからもお尋ねすることがあるかもしれません。 その時はまたよろしくお願いします。

関連するQ&A

  • 亜や準に相等する単語を探しています。

    「亜」や「準」といった"one step form goal(一歩手前の)"という意味の接頭語を探しています。 semi- とか quasi- とか pre- とか a- とか見つけたのですが、類似語を沢山知りたいのですが他にどんな接頭語があるでしょうか?

  • pre happy birthdayの意味

    pre happy birthday pre happy birthday wishes は日本語に直訳するとしっくりくる言い回しはあるのでしょうか? ご存知の方がいましたら教えて下さい。 前夜祭・・・という意味に当たるのかな・・・とは思うのですが、 pre happy birthday wishes だといまいち良くわからないです(^^;) 宜しくお願い致します_(._.)_

  • 接頭語別に英単語が見れるホームページを教えて下さい。

    接頭語別に英単語が見れるホームページを教えて下さい。 例えば、接頭語transで検索すると、 transで始まる英単語が一覧で見れて、 各単語別に、接頭語以外の部分(語幹や接尾語)の意味が説明されていると良いです。

  • 「くっちゃべる」

    よくしゃべるの意味で「くっちゃべる」 という表現をしますが、 「くっ」とは何なのでしょうか? 接頭語とするならば語源となる語は何なのか? 単なる方言やなまりなのか? 調べてみても、答えはわかりません。   どなたか詳しい方 よろしくお願いします!

  • 「繰る」の連用形としての「繰り」は接頭語にできますかな?

    ●繰り返す、 繰り上げる、繰り広げる などの「繰り」は特定の意味がありますか? ●いくら古いの寺とはいえ、古色古香の清水寺にそう誇れるのははずもない。 「いくら…とはいえ…」は慣用句ですか?どういう意味ですか? ●タイトルについて 私は「接頭語にできるかな?」を表したいですが、言い回しを見つけられません。その「接頭語にできますかな?」という言い方がありますか?日本語の勉強者です。教えていただけませんか? ●死ぬ気で逃げ惑う 「死ぬ気」はどういう意味ですか? ●貴様は私に食われる 「食われる」は「くわれる」といいますか?「食われる」は「殴られる」などの意味をしますか? 宜しくお願い致します。

  • UNINITIATEDの接頭語UNは、否定の意味を持たないのでしょうか

    UNINITIATEDの接頭語UNは、否定の意味を持たないのでしょうか。 素朴な疑問です。 INITIATEは「始める・開始する」「初期の」という意味ですよね。 なのでその接頭にUNがつくと反対の意味になるのかなと思ってしまうのですが UNINITIATEDの意味は「初心者」。 このUNは何を意味しているのでしょうか。

  • presenation(プレゼネーション)という単語についてしりたいで

    presenation(プレゼネーション)という単語についてしりたいです。 例をあげますと、presenation markup、Final Presenation、presenation layer、Multimodal Presenation Markup Language といったぐあいに、いろいろ用いられている様ですので、presentation(プレゼンテーション)のtypoではなさそうにおもえます。 どのような意味をもつ語彙で、(辞書をみるときのヒントになる)元の単語と接頭語preとか接尾語sion関係も解説していただけるとありがたく思います。 またクリソツなpresentationとの違いについてもあわせて解説していただければなおよいと思います。 よろしくおねがいします。

  • invaluableについて

    inは、反対の意味を表す場合が多いですが、 valuableが高価な、と言う意味なのに、 invaluableも非常に高価な、と言う意味だったので辞書を引かなかったら危ないところでした。 1) この場合のinは、接頭語ですか? 強意を意味する接頭語inが存在するのでしょうか? 2)このvaluable/invaluableの関係にある単語は、他にもありますか(英検準1レベル以内で)?

  • 動植物の名前の接頭語(?)について

    こんにちは。 動植物には当たり前ですがそれぞれに名前があります。 そのなかで、アタマに『マ』と『イヌ』がつくものが多いがします。 『マ』ですとマイワシ、マダイ、マダコなど。 『イヌ』ですとイヌワシ、イヌワラビなど。 そこで疑問なのですが、これらの接頭語がもつ特別な意味というものはあるのでしょうか。 以前、『イヌ』は大きいものということを見かけたことがありますが、どこにでもいて平凡なものという説も聞いたことがあります。 お分かりの方がいらっしゃいましたら、お教えください。 また、この二つ以外に接頭語や接尾語として生物の名前に多いものがああればお教えください。 よろしくおねがいします。

  • キシレンの名称について

    1,3-ジメチルベンゼンの慣用名である「キシレン」(xylene)という名称は何が由来かご存知の方いらっしゃいませんか。 xy-という接頭語はギリシア語で「木の」等の意味があったように思いますが、キシレンは木材などから分離・精製された成分なのでしょうか。私には石油中に含まれている一成分というイメージしかないのですが…。

専門家に質問してみよう