| 開発者 | ロン・ケイン、ジェームズ・E・ヘンドリックス |
|---|---|
| 初回リリース | 1980年 |
| 書かれた | Cプログラミング言語 |
| タイプ | コンパイラ |
| ライセンス | 著作権はありますが共有可能です |
Small-C は、リソースが限られたマイクロコンピュータや組み込みシステムに適したC プログラミング言語のサブセットであり、そのサブセットの実装でもあります。1970 年代後半から 1980 年代前半に利用可能だったマイクロコンピュータ システム用の初期のコンパイラとして元々価値があった実装ですが、教育目的にも十分にシンプルな例としても役立っています。
オリジナルのコンパイラは、 Ron Cain がIntel 8080用に Small-C で記述したもので、1980 年 5 月号のDr. Dobb's Journalに掲載されました。James E. Hendrix は、オリジナルのコンパイラを改良および拡張し、『The Small-C Handbook』を執筆しました。Ron は、 Small C 開発用に John Bass から提供されたアカウントを使用して、 SRI International PDP 11/45 Unixシステム上で Small-C をブートストラップしました。提供されたソース コードは、管理者の許可を得てパブリック ドメインにリリースされました。[要出典] Small-C は、大型コンピュータにおけるGCCの重要性と似た方法で、小型コンピュータにとって重要でした。Unix の同等のコンパイラと同様に、このコンパイラはアセンブラ コードを生成し、それを利用可能なアセンブラでマシン コードに変換する必要があります。
Small-C は再ターゲット可能なコンパイラです。Small-C を移植するには、バックエンドコード ジェネレータと、オペレーティング システム インターフェイス呼び出しへのライブラリをターゲット プロセッサ用に書き直すだけで済みます。
言語サブセット
「1980 年 5 月、Dr. Dobb's Journal に「8080 年代向けの小型 C コンパイラ」という記事が掲載され、その中で Ron Cain が C 言語のサブセット用の小型コンパイラを紹介しました。このコンパイラの最も興味深い特徴は、その小型さに加えて、それが記述された言語、つまりコンパイルされた言語でした。これは自己コンパイラでした (これは現在では当たり前のことですが、当時はかなり斬新なアイデアでした)。彼のコンパイラは、単純な 1 パス アルゴリズムを使用して、8080 プロセッサ用のアセンブリ言語を生成しました。ただし、小型であるため、制限がありました。認識できるのは、文字、整数、およびいずれかのタイプの 1 次元配列のみでした。ループを制御する唯一のデバイスは while ステートメントでした。ブール演算子はないため、代わりにビット単位の論理演算子 & (AND) と | (OR) が使用されました。しかし、これらの制限があっても、非常に有能な言語であり、特にアセンブリ言語と比較すると、使用するのが楽しいものでした。
ロンは改良の必要性を認識し、私に第 2 版の作成を勧め、1982 年 12 月に Dr. Dobb's Journal にも掲載されました。新しいコンパイラは Small C に (1) コードの最適化、(2) データの初期化、(3) 条件付きコンパイル、(4) extern ストレージ クラス、(5) for、do/while、switch、goto ステートメント、(6) 組み合わせ代入演算子、(7) ブール演算子、(8) 1 の補数演算子、(9) ブロック ローカル変数、(10) その他のさまざまな機能を追加しました。その後、1984 年にアーネスト ペインと私は、このコンパイラ用の CP/M 互換ランタイム ライブラリを開発し、公開しました。このライブラリは 80 を超える関数で構成され、UNIX C 標準 I/O ライブラリの関数のほとんど (CP/M 環境に関連する関数) を含んでいました。これがバージョン 2.1 となり、The Small C Handbook の主題となりました。[1]
参照
- BDS C (1979) – Z80 および 8080 システム用の C コンパイラ
- MISOSYS C (1985) - TRS-80 (Z80 CPU) 用 C コンパイラ
- Tiny C (2002) – ディスク容量の少ない低速の x86 および ARM コンピュータ用の C コンパイラ
小文字Cのバリエーション
- Z88DK – Z80 ベースのマイクロコンピュータ向けのクロス Small-C 実装
- cc65 – 6502 コンピュータ用のクロス Small-C 実装
- Deep Blue C – Atari 8 ビット コンピューターの Small-C
- AJTravis – BBC MicroのネイティブSmall-C [2]
参考文献
- ^ James E. Hendix. 「はじめに」。 Small-C コンパイラ: 言語、使用法、理論、設計。 M & T Books 1988 / Dr. Dobb's Journal Developer Network 2005。
- ^ 「BBC コンピュータ用 C コンパイラ」Mdfs.net。
注記
- ロン・ケイン、「8080 年代向けの小型 C コンパイラ」、ドクター・ドブズ・ジャーナル、1980 年 4 月~5 月、pp. 5~19
- ジェームズ・E・ヘンドリックス『小文字のCハンドブック』レストン 1984年、ISBN 0-8359-7012-4
- James E. Hendrix、『A Small C Compiler: Language, Usage, Theory, and Design』、M & T Books 1988、ISBN 0-934375-88-7
- James E. Hendrix、Small C Compiler、M & T Books 1990、ISBN 1-55851-124-5
外部リンク
- Small-Cの創設に関するロン・ケイン氏のコメント
- Small-Cのいくつかの実装
- BBC コンピュータのネイティブ コンパイラ
- Dr. Dobb の Small-C リソース CDROM iso イメージのダウンロード
