コンテンツにスキップ

BDS-C

出典: フリー百科事典『ウィキペディア(Wikipedia)』

BDS-Cは、BD Software製の8080/Z80用のC言語処理系(コンパイラ)である[1]。同社を設立したレオ・ゾルマン(Leor Zolman)が1979年に開発した。

概要

[編集]

CP/M-80上で稼動し、K&R時代のC言語仕様のやや方言を伴うサブセット[1]として実装されている。米国ライフボート社から世界的に販売されたが、日本では初期のバージョンおよび完成度を高めたVer.1.5が一部の愛好家に知られたものの、一般的にはサブセットとしてライフボート社(日本法人)から発売されたα-Cの方がメジャーだった(BDS社によれば、BDS-Cは世界で約25,000セット、α-Cは日本で約50,000セットが出荷された)。BD Software社の販売価格は$110、日本での販売価格は6万円(9万8000円との資料もある[2])と、当時の同クラスのコンパイラに比して非常に安価であったのも成功の理由である。なお、BDはレオのMIT時代のニックネーム"Brain Damaged"(脳障害)から付けたというが、現在は名前の由来に関しての説明は、BD Software側で回避している。

特徴

[編集]

2.5~4MHzのZ80が主流であった1980年代初期の8ビットパーソナルコンピュータの乏しいハードウェア資源を考慮し、少ないメインメモリフロッピーディスクで稼動した。コンパイラは前半・後半に分かれて実行されたが、それらの間の受け渡しは一般的な手法であるFD上に中間ファイルを生成することを避け、メモリ上に中間コードを置いて直接渡すなどの工夫により、高速なコンパイル・リンクが可能だった。その代償として余り大きなモジュールをコンパイルすることは不可能だったが、実用上は支障はそれほど見られなかった。

当初は標準ヘッダやライブラリが非互換で、とくにファイルディスクリプタが独特のため、K&Rのサンプルプログラムもそのままでは実行できないものであったが、Ver. 1.5以降は標準的な入出力関数(fputc、fprintfなど)が、一般的な引数を用いて利用できるようになった。

実行速度は当時最速といわれたLSI-C80はもちろん、最適化を効かせたWhitesmith Cなどには及ばなかったものの、プログラム入門から小規模なツール開発などには充分な効率と実行速度が得られ、コンパイル・リンクに要する時間の短さとあいまって、C言語の入門用として評価が高かった。

BDS-C/α-Cはfloat型やdouble型に対応していなかったため、実用的なアプリケーションの作成には向いていないという弱点があった。そのため、関数呼び出しの形で実行する浮動小数点演算ライブラリが多数開発・配布されていた。BDS-C/α-Cに対応した解説書も多数出版されており、CP/MにおけるC言語の草分け的存在といえる。

BDS-Cは現在、BD Software社のサイトからパブリックドメインで提供されている。

αシリーズについて

[編集]

ライフボート社はαシリーズとして多数のプログラミング言語パッケージを販売しており、ライブラリレベルで相互に互換性を持たせていた。例えばα-FORTRAN(FORTRAN 66相当)で浮動小数点を含む数値計算を行い、α-Cで作成した実行制御およびハードウェア制御ルーチンをライブラリとしてリンクするといった、マルチ言語プログラミングを可能としていた。この機能を実現する上で、マクロアセンブラM80およびリンカL80の働きは大きい。

αシリーズの言語としては、α-C、α-FORTRAN、α-PASCAL、α-COBOL、α-LISP、α-FORTH、α-APL、α-PROLOGがシリーズ展開されていた。

出典

[編集]
  1. ^ a b MyComNo10 1983, p. 29.
  2. ^ MyComNo10 1983, p. 6.

参考文献

[編集]
  • 「3.市販C言語の特徴」『マイコンピュータ』CQ出版社〈No.10〉、1983年9月1日、29頁。 

外部リンク

[編集]
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy