ここから本文です

Cって何種類あるんですか? また、特徴はどんなんですか?

c_crimerさん

2010/8/3118:52:30

Cって何種類あるんですか?
また、特徴はどんなんですか?

閲覧数:
8,803
回答数:
4
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

編集あり2010/9/101:54:09

C言語関連といわれる言語はいくつかあるよねぇ。言語仕様が違うものを書くねぇ。


■C言語
下に挙げた言語の先祖にあたる言語だけど、その後も、複素数型 (complex型) が加わったり、下の言語とは独立した進化を遂げてるよぉ。

■Objective-C
C言語にオブジェクト指向パラダイムの機能を追加したもの。

■C++
C言語に汎用プログラミングパラダイム (template), クラス継承型オブジェクト指向パラダイム、名前空間 (namespace) とかの機能を追加したもの。C言語に対していろいろな言語拡張を実験的にどんどん取り入れているので、言語仕様がすごく肥大で、とても複雑な言語になってるよ。

■Embedded C++
C++言語から、組み込み機器用に必要のない部分を削ぎ落としたもの。

■Cg
C言語に対して、固定小数点型 (fixed型)とか、テクスチャオブジェクト型 (sampler型)とか、ベクトルや行列を扱う型とかを追加するとかの、GPUプログラミング用に必要な機能を追加したものねぇ。

■SpecC
C言語を拡張してつくられたハードウェア記述言語 (HDL)。ソフトウェア作成のためのものじゃなくて、LSI を設計するためのもので、論理回路のロジックを記述する言語だよぉ。同じ仲間としては、VHDL とか Verilog-HDL とかあるよぉ。(SystemC っていうのもあるけど、これは、言語仕様そのものは C++言語 と同じ。)

■C#
名前に C が付くから C言語関連 におまけで挙げたけど、実際には、Java 言語の子孫 (というより従兄弟) といったほうがいい言語なんだよねぇ。Microsoft .NET 用の言語だよぉ。


…で、上に挙げた言語にそれぞれ対して、いろんな会社がいろんなプラットフォーム用にコンパイラーを作ってるよねぇ。たとえば、C++言語のコンパイラーはこんなにいっぱいあるよぉ。(これでも全部じゃないよ。)

・「Code Warrior」 (MetroWorks社)
・「C++ Builder」 (Borland社, Windows 用)
・「Digital Mars C/C++ Compiler」 (Digital Mars 社)
・「g++」 (GNU)
・「H8SX、H8S、H8ファミリ用 C/C++コンパイラパッケージ」 (日立情報制御ソリューションズ社)
・「HP aC++ Compiler」 (Hewlett-Packard社)
・「IAR C/C++ Compiler」 (IAR Systems 社)
・「IBM XL C/C++ Compiler」 (IBM社, AIX/Linux/他用)
・「Intel C++ Compiler」 (Intel社)
・「LLVM Compiler」 (米国イリノイ大学 LLVM プロジェクト)
・「Microsoft C++ Compiler」 (Microsoft社, MS-DOS用)
・「Microsot Visual C++ Compiler」 (Microsoft社, Windows 用)
・「MSP430 Optimizing C/C++ Compiler」 (Texas Instruments 社)
・「PathScale EKO Compiler」 (PathScale社)
・「PGI Compiler」 (PGI社)
・「Pro Fortran95 Compiler」 (Absoft社, 名前は Fortran だけど C++コンパイラーも同梱)
・「SHC C/C++ Compiler」 (HitachiSoft社, SuperH RISC engine 用)
・「Sun Studio」 (ORACLE社, SPARC/x86/x64用)
・「TMS320C28x Optimizing C/C++ Compiler」 (Texas Instruments 社)
・「Turbo C++ Compiler」 (Borland社, MS-DOS用)
・「Watcom C/C++ Compiler」 (Watcom社, MS-DOS/Windows/OS/2 用)


こんなかんじかもねぇ。他にもあるかもね。 C++言語のコンパイラーだけでもこうだから、他の言語のコンパイラーも挙げると C言語系 のコンパイラーは全体ではスゴイことになりそうだねぇ。


http://ja.wikipedia.org/wiki/C%2B%2B
http://ja.wikipedia.org/wiki/Embedded_C%2B%2B
http://ja.wikipedia.org/wiki/Cg_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%8...
http://www.specc.gr.jp/
http://ja.wikipedia.org/wiki/C_Sharp


joseph_joey_tribbiani

質問した人からのコメント

2010/9/5 13:33:44

詳しく、質問意図をよく理解してくださった回答だと思いました。
ありがとうございました。

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

2010/9/208:57:05

> kagetadasさん
>
> ANSI規格は確か4種類、ANSIになる前のC&Rなどの規格が数種あったと

『C&R』は存じませんが、K&Rは有名ですね。

※ K&RはC言語の解説書(当時のリファレンス本とされていた書籍)を記した人々の名前から付けられた略称です。著者の一人はC言語の作者でもあるリッチー(デニス=リッチー)でRは彼の名前からきています。もう一人はカーニハン(ブライアン=カーニハン)でKは彼の名前に由来します。
C言語はB言語を元にしており、その時のC言語にはB言語を作ったケン=トンプソンも大きな影響を与えているといえるかと思います。
彼ら3人はAT&Tベル電話研究所の同僚で共に初期のUnixに関わっていた方々です。


『ANSIになる前のC&Rなどの規格』K&Rは規格とはなってないかと。
最初に規格としてまとめられたのがANSI(ISOとANSIが共同で規格化作業を行った)で、今はC89やC90と呼ばれている規格です。(当時は単にANSI CやISO Cと呼ばれていました)
※ 最初のANSI/ISO規格制定時にC言語自体が随分整理されました。規格化前はK&R参考に多様な実装が乱立している状況でしたから。
その後、何度か新版がだされ(新しい規格がでてくると名前をつけないと判別できない)新版追加年を付け識別するようになったのでは。
※ 規格としてはC89/C90の他にC95, C99があります。(いずれも通称。名称はANSI CやISO Cでしょうかね)
※ 改訂というには余りに旧版使われている事が多いような。併用状態だと思います。C99でも10年以上前なんですよね。


ANSIで規格化される前は標準関数の名前に大きな違いのあるC言語がいくつかありました。
※ ホワイトスミスCとか有名だったような。標準関数の名前に作者の権利が及ぶ危険性を感じた者が意図的に標準関数などの名前を変えて作ったため。

初期のUnixに付いていたpcc(ポータブルCコンパイラ)は昔のリファレンス的な実装だったのではと思います。


> Cって何種類あるんですか?

C言語の実装は非常に多い(4桁以上かな)と思います。
規格としては C89 / C95 / C99 の3種類があり、規格化前の古いC言語(K&R)への互換性を考慮してソフトを実装する場合もあります。

※ C89とC90はほぼ同じものです。同じものが色々なところで規格として採択されてます。(例えばJISなど)
※ 今でもC89を使ってプログラム書くのが無難な気はします。


> 特徴はどんなんですか?

良くも悪くも単純な事が特徴の一つかな。

実装の多い事、C言語が扱えるプログラマの数が多い事も大きな特徴かと。
長い間もっとも一般的なプログラミング言語であった事からライブラリの充実や対応環境の多さも大きな特徴かな。
サンプルボードや開発ツールなどでもC言語の用意されてない場合は少ないですし。

gccの様な高品質で改変可能・調整容易な実装があるのでハードを出すメーカが開発ツールを用意し易いというのもあるでしょうし。

kagetadasさん

2010/8/3122:41:48

ANSI規格は確か4種類、ANSIになる前のC&Rなどの規格が数種あったと

現在純粋なコンパイラーは少なく、C++がセットになっているものが多いです。

あとは、VisualStudioとかBorlandC++Builderとか各社の製品が結構あります。
規格的な話か、製品の話かまとめたほうがよいかと思います。

特徴は、WikipediaでANSI Cを見るのが分かりやすいかと思います。

f_sasaki0さん

2010/8/3120:32:04

人間が話す言語と同様に、C言語の類似言語も色々あるけれども

私は、C言語で
プロ中のプロ、天才の作ったプログラムソースに触れることを勧めたい。

http://www.linux.or.jp/JF/JFdocs/The-Linux-Kernel-16.html

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。