acl4のもくじ
(0) 概要
- acl4はK(=川合)が作っているC言語用のライブラリです。主に自分の開発を楽にするために作っています。
- このプロジェクトでは「ライブラリ自作駆動開発」ということをやっています(造語)。
- 「自分でいい道具を作る → それを使ってさらにいい道具を作る → それを使って・・・」というサイクルを繰り返して、短期間でたくさんの成果を上げる手法です。
- 最近の成果(2026.04.25): a4_p0007: プリプロセッサ処理をする関数を作ったら、いろんな言語が簡単に作れるかもしれない可能性が出てきました!
- 最近の成果(2026.05.04): a4_p0008: プリプロセッサを使って、Cコンパイラ・アセンブラ・C言語のJITコンパイラを簡単に作りました
- ライブラリ自作駆動開発:
- アプリケーションを作る際に、うまく汎用的に書けた関数を自作ライブラリに加えていく。
- アプリを作り直すときは、ライブラリを活用できるので、開発が速くなる。
- ライブラリは自分の財産。ここが大きくなれば、以降の開発は加速する。
- これを見て
- 「acl4に出てきた〇〇みたいな関数は確かに便利かもしれないから、自分が普段使いしている言語に移植してみた」
- 「acl4使ってこんなプログラム書いてみたよ」
- 「〇〇関数のこの仕様は違う気がしたので、自分はこう作ってみた」
- 「ライブラリ自作駆動開発をやってみました!」
- みたいに話が広がったら、公開してよかったなーと思います。
(1) acl4ライブラリ( acl4v1 )
- a4_0016: 主要な標準関数をすべてインクルード、便利関数・便利マクロ、デバッグ支援関数(malloc_など)
- a4_0017: vector<char> を参考にして作った VecChr クラス(動的可変長配列)、簡単な Key-Value Store を提供する Set0 クラス
- a4_0018: トークンを切り出す Token0/Token1 クラス、かっこでくくられた構造を切り分ける parseArgs など
- a4_0019: VecChrに対するprintf・VecChrに対するファイル入出力関数
- a4_0020: プリプロセッサ用のクラス(SourceFiles、Eval、If)
- a4_0021: プリプロセッサ用の関数群(#define関係)
- a4_0022: プリプロセッサの main 関数など
- a4_0023: 簡易な仮想マシン関数 A4vm_exec0 など
- a4_t0002: (補助ライブラリ)WindowsのAPIを使ってグラフィックウィンドウを開いて描画
- a4_t0003: (補助ライブラリ)ミニコンパイラなど
(2) acl4を使ったプログラム例
- a4_p0007: プリプロセッサ処理をする関数を作ったら、いろんな言語が簡単に作れるかもしれない可能性が出てきました!
- a4_p0008: プリプロセッサを使って、Cコンパイラ・アセンブラ・C言語のJITコンパイラを簡単に作りました
(3) 開発ログなど
(4) その他
|