BDS-Cは、BD Software社によって開発された8080/
Z80プロセッサ向けの
C言語処理系(
コンパイラ)です。
1979年に同社を設立したレオ・ゾルマンによって開発されました。
概要
BDS-Cは、
CP/M|CP_M-80オペレーティングシステム上で動作し、K&R版
C言語仕様のサブセットとして実装されています。ただし、多少の方言が含まれていました。当初はアメリカのライフボート社を通じて世界的に販売されました。日本では初期バージョンと完成度を高めたVer.1.5が一部の愛好家に知られていましたが、一般的にはライフボート社(日本法人)から発売されたサブセット版のα-Cの方が広く普及しました。BDS社の情報によれば、BDS-Cは約25,000セット、α-Cは約50,000セットがそれぞれ出荷されたとされています。
BDS-Cの販売価格は110ドル(日本では6万円、または9万8000円とする資料もある)であり、当時の他のC
コンパイラと比較して非常に安価であったことも普及の要因の一つです。なお、BDという名前は、レオ・ゾルマンがMIT時代に呼ばれていたニックネーム「Brain Damaged(脳障害)」に由来するとされていますが、現在BD Software社は名前の由来に関する説明を避けています。
特徴
1980年代初期の8ビットパソコンは、2.5~4MHzの
Z80プロセッサが主流であり、ハードウェア資源が限られていました。BDS-Cは、そのような制約のある環境下で、少ないメインメモリと
フロッピーディスクで動作するように設計されました。コンパイルは前半と後半に分かれて実行されましたが、中間ファイルの受け渡しにはFDを使用せず、メモリ上で中間コードを直接やり取りするなどの工夫が凝らされ、高速なコンパイルとリンクを実現していました。その代わり、コンパイルできるモジュールのサイズには制限がありましたが、実用上は大きな問題とはなりませんでした。
初期のバージョンでは標準ヘッダや
ライブラリに非互換性があり、特にファイルディスクリプタが独特であったため、K&Rのサンプルプログラムをそのまま実行することができませんでした。しかし、Ver. 1.5以降では標準的な入出力関数(`fputc`、`fprintf`など)が一般的な引数で使用できるようになりました。
実行速度は、当時最速と言われたLSI-C80や最適化を施したWhitesmith Cには及ばなかったものの、プログラム入門や小規模なツール開発には十分な効率と実行速度が得られました。コンパイルとリンクに要する時間が短かったこともあり、
C言語の入門用として高く評価されました。BDS-C/α-Cはfloat型やdouble型に対応していなかったため、実用的なアプリケーション開発には不向きという弱点がありました。このため、浮動小数点演算
ライブラリが多数開発され、関数呼び出しの形で利用されていました。BDS-C/α-Cに対応した解説書も多く出版されており、
CP/M|CP_Mにおける
C言語の普及に大きく貢献しました。
現在、BDS-CはBD Software社のウェブサイトからパブリックドメインとして無償で提供されています。
αシリーズについて
ライフボート社は、αシリーズとして多数のプログラミング言語パッケージを販売しており、
ライブラリレベルで相互に互換性を持たせていました。たとえば、α-FORTRAN(FORTRAN 66相当)で数値計算を行い、α-Cで作成した実行制御やハードウェア制御ルーチンを
ライブラリとしてリンクすることで、マルチ言語プログラミングを可能にしていました。この機能を支えていたのは、マクロアセンブラM80とリンカL80でした。
αシリーズの言語としては、α-Cの他にα-FORTRAN、α-PASCAL、α-
COBOL、α-LISP、α-FORTH、α-
APL、α-PROLOGなどが展開されていました。
出典
参考文献
「3.市販
C言語の特徴」『マイコンピュータ』CQ出版社〈No.10〉、1983年9月1日、29頁。
外部リンク
BD Software
*
BDS-Cダウンロード