Small-Cハンドブック。Small-Cは、8ビットパソコン向けの簡略化されたC言語で、この本は、Small-Cの開発者自身の著書の、日本語訳です。本について発行日は昭和60年(1985年)7月10日初版発行、昭和63年6月25日第1版第2刷発行。内容としては、まずはインテルの8080というプロセッサについて、レジスタの構成やスタックの仕組みなどCPUの初歩が書かれます。マシン語からアセンブリ言語へと話が進み、さらに、プログラムをリロケータブルにするということまで触れられます。リロケータブル(relocatable、再配置可能)というのは、プログラムをメモリ上のどの位置に読み込んでも実行可能にすること。プログラムがアドレス3000に読み込まれ、アドレス3010のデータを読み込む、という命令があったとします。ここでもし、プログラムがアドレス5000に読み込まれたら、読み込むデータは、アドレス3010ではなく、アドレス5010にあることになります。あれば、データを読み込む命令上のアドレスも、3010から、5010に書き換えないといけません。リロケータブルにするということは、そのアドレス書き換えのための仕組みを備える、ということです。基本的なところから順を追って書かれているので、教科書として読んでもよさそうな本です。Small-CについてSmall-Cは、広く使われるプログラミング言語であるC言語の、サブセット版。簡単に言えば、8ビットパソコンで使える小さいC言語です。Small-Cの発表が1980年、この本に載っているのは、バージョン2.1とのこと。フルセットのC言語(ただし、ANSIで規格化される前の、旧い仕様)と比べて、異なるところはいろいろありますが、目に付いたところだけ取り上げてみます。データ型Small-Cで使える型は、intとcharのみ。intなどはありません。配列は、多次元配列はなく、1次元配列のみ。関数の戻り値は、intのみ。256()と書いた場合、アドレス256にあるサブルーチンがコールされます。概ね、普通のC言語感覚でプログラミングできそうです。コンパイラのソースこの本には、Small-C自身で書かれたSmall-Cコンパイラのソースが載っています。その言語自身で書かれた、と聞くと不思議な感じがしますが、割とよくあります。何もないところからいきなりその言語で書くことはできません。最初は、何か別の言語で書き、ある程度機能が揃ったらその言語自身で書き直すことで、実現します。以降は、コンパイラの改良をその言語自身を用いて行うことができます。この本の付録.Aには、Small-Cコンパイラのソースが、55ページに渡って続きます。その後の付録.Bには、アセンブリ言語で書かれた「算術・論理ライブラリ」が8ページ載っています。これは例えば、乗算ルーチンとか。処理系のソースは載っていますが、標準ライブラリ(入出力等)は載っていません。言語自体に入出力等の機能を持たないC言語の場合、ライブラリを用意する方が分量が多くて大変だったりします。おわりにソースが載っているので、コンパイラについても、なかなか勉強になります。コメントをキャンセルメールアドレスが公開されることはありません。