C,C++
なかなかページの改訂が追い付きません。
間違い,新情報などは奥村までお知らせいただければ幸いです。
C言語について
C言語についてはいまさら説明の必要もないでしょう。
1969-1973年頃にUNIXとともにできた言語です。
現在のC言語の標準であるANSI Cができたのは1989年です。
次世代のC言語は,今までC9Xと呼ばれていましたが,
1999年12月1日に正式に ISO/IEC 9899:1999 として出版されましたので,
C99 と呼ぶのが適当でしょう。
詳しくは
ISO/IEC JTC1/SC22/WG14 - C
が参考になります。
gcc
については
Status of C99 features in GCC
というページに対応状況が書かれています。
C++言語について
C++
(シープラスプラス*)は C 言語を拡張したものです。
C++ の前身ができたのは1980年頃で,
C++ という名前が付けられたのは1983年ですが,1997年11月14日にやっと C++ の
国際標準
ができました。
* 日本では略して「シープラプラ」とも読みます。
フリーのコンパイラ
Windows 上で C(C++)
を勉強するためのフリーの開発環境としては次のものがあります
(他にもありましたらお教え下さい)。
- Cygnus Solutions(現在は Red Hat に吸収されました)の
Cygwin
(以前は gnu-win32 と呼ばれていました)は UNIX の
gcc
を中心とした開発環境をそのまま Windows
に持ち込んだものです。
Cygwin についてはこのページの下にも少し書き足しておきます
(すいません,ちょっと古いです。書き直す暇が……)。
- Mingw32 は上記 Cygwin の UNIX エミュレーションサポートを外して Windows
標準の CRTDLL.DLL だけで動くようにしたものです。
この拡張は現在の Cygwin に取り込まれています
(オプション -mno-cygwin 指定時)。
- delorie software の
djgpp
は基本的には MS-DOS(+拡張メモリ)用のものです。
もちろん Windows でも使えます。
- エル・エス・アイ ジャパン株式会社
の
フリーソフトウェア集
にある LSI C-86 試食版は MS-DOS 汎用の C コンパイラ(C++
ではない)です。
エラーメッセージを日本語で出すこともでき,
教育用には十分のものです。
もちろん Windows の MS-DOS プロンプトでも使えます。
もともとの MS-DOS 版 LHA はこれでコンパイルされたものです。
もっとも,今となってはスモールモデル(64K
以内)にしか対応していないというのはかなりきつい制限です。
- lcc, A Retargetable Compiler for ANSI C というものを教えていただきました。
Windows 版の
LCC-Win32
もあります。すずきえいすけさんが LCC-Win32 用の
SJIS対応ツールとコンパイラドライバ
を作ってくださっています(Thanks: すずきさん)。
- Borland Community Museum
から古い Turbo C 1, 1.5, 2.01 が無償でダウンロードできます。
日本語は通らないと思いますが,MS-DOS の英語モードで使えるでしょう。
この Museum には古い Turbo Pascal もあります。
- 日本HPの後藤正治(まさはる)さんの C/C++
インタープリタ CINT(シーイント)については CERN の
The CINT C/C++ Interpreter
のページに情報があります。商利用には日本HPから許可が必要のようです。
ftp://root.cern.ch/root/
に cint5.14.tar.gz というような名前で入っています。
後藤正治さんの
『C++インタープリタ――CINT』
という本が
CQ出版
から出ています(2700円,ISBN4-7898-3085-3)。
C Magazine 1999年10月号付録 CD-ROM にも収録されています。
CINT は CERN で開発されている
ROOT
というデータ解析システムのマクロ言語として開発されたものです。
したがって,ISO/IEC C++ 完全互換を目指したものではなく,
むしろ ANSI C をほぼ含む C++ のかなり大きなサブセットと解すべきものです。
- Borland C++ Compiler 5.5 が無償になりました! 日本語版も!
Windows 用のフリーのコンパイラでは最強のものでしょう。
「Cマガジン」付録CD-ROMにもたびたび収録されています。
- Bloodshed Software
がフリーの GUI ベース C/C++ 統合開発環境 Dev-C++ を公開しています。
コンパイラは Mingw32/Cygwin,デバッガは gdb です(Thanks: 梅本さん, Noriさん)。
DevC++JPプロジェクト
に日本語化する方法があります(Thanks: 津留さん)
やはり Mingw32 のフロントエンドで,
gcc Daeveloper Station 2000
というものがあります。
作者の馬渕大介さんのページは
ここ です
(Thanks: いちごじゃむさん)
←これはもうなくなっているようです(Thanks: 津留さん)
- 6809用に開発されたMicroCをベースにして日立のHD6301/6303にカスタマイズとチューニングを行った組み込み目的のCコンパイラ C3PO を紹介していただきました(Cコンパイラ開発顛末記)
- Digital Mars C and C++ Compilers
を紹介していただきました。
ここには C/C++ の次の D という言語のコンパイラもあります。
- WideStudio:
Windows,Linux,FreeBSD,Solaris上で動作する純国産の完全フリーのウィンドウアプリケーション統合開発環境
(Thanks: 近田先生@金沢大)
- Open Watcom:
かつての Watcom C/C++/Fortran がオープンソースになりました!
Cygwin を使おう
以下の内容はかなり古いです。そのうち直します。
UNIX(Linux や FreeBSD など)と Windows の両刀使いの人は,
やはり Cygwin が便利かと思います。
上記のファイルをダウンロードして実行すればインストールできます。
ただしディスクの空き容量が 100M くらいは必要です。
Windows のスタートメニューに登録される Cygwin をクリックすれば,
MS-DOS プロンプトのような窓が現れますが,
これはやや不完全ながら UNIX 環境(シェルは bash)を模したものです。
基本的な UNIX コマンドはほぼそのまま使えます。
コンパイルするには通常の UNIX の gcc と同様に
gcc test.c -o test
のようにします。生成される実行ファイル名は -o
で指定したもの(ここでは test)に拡張子 .exe
を付けたものになります。
実際には,なるべく警告をたくさん出すオプション -Wall を付けて
gcc -Wall test.c -o test
のようにするのがいいでしょう。
この test.exe を Cygwin 環境から実行するには,
./test
のように ./ を冠する必要があるかもしれません(PATH
環境変数の設定によります)。
この test.exe を Cygwin 窓ではなく DOS 窓から実行するには,
Cygwin 付属の cygwin1.dll にパスを通しておくことが必要です。
あるいは cygwin1.dll を C:\WINDOWS\SYSTEM
にコピーしておけばいいでしょう。
どうしても cygwin1.dll のない環境でも動作させたいなら,
-mno-cygwin オプションを付けて
gcc -mno-cygwin -Wall test.c -o test
のようにコンパイルするといいでしょう。
特に UNIX 互換を望まなければ,これで十分です。
同じソースコードを本物の UNIX でも Cygwin でも使いたい場合は,
次のマクロを #ifdef で調べるようにします。
- unix
- UNIX 環境だけで定義されます。
- __CYGWIN__
- Windows 環境で -mno-cygwin を指定しないときだけ定義されます。
Cygwin 関連のリンク集
下記以外にもたくさんあります。
C/C++ 駄文集
C/C++ のリンク集
参考書
奥村晴彦
Last modified: 2008-07-31 09:43:13