acl4の開発ログ #05
2026.02.04(水) #3
- 私のこの開発スタイルは「ライブラリ駆動開発」というべきものなのかもしれないです。
- 私が開発しているのはライブラリです。サンプルコードはもちろん作りますし、サンプルとして作ったものを使うこともありますが、しかし開発の際に心がけているのは、「今書いているこの関数を一般化することはできないか?もしできるなら、それをライブラリに加えたい」ということです。
- これを続けていくことで、ライブラリはそれなりに大きくなります。これは財産で、このライブラリを使って似たようなものを早く作ることができますし、複雑なものを早く作れるようになります。
- だからこそ、アプリを作ることよりもライブラリを充実させることを優先するのです。ライブラリができてしまえば、アプリはいつでもすぐに作り直せます。
- このスタイルでやったら、OS自作とかも短期間でうまくできたりするのかな??
2026.02.05(木) #0
- 現在、プリプロセッサを作るための部品をそろえていますが、プリプロセッサの仕様について考えています。
- 標準的なプリプロセッサの仕様では、「ローカルマクロ」みたいなことができません。
- ローカル変数では、 int i; とやれば、それまでに宣言されていた i は隠されて、新しく宣言した i だけが使えるようになって、スコープを抜ければ以前の i にまたアクセスできるようになります。
- でもプリプロセッサでは #define Macro ... としたときに、すでに Macro が定義されていれば二重定義エラーになるだけですし、 #undef すれば消えるだけです。
- 私はこれを二重定義エラーにはしないで、 #undef したときに元の定義に戻るようなそんなプリプロセッサにしたいです。
- これをそのままやると互換性の問題が大きすぎるから #define, #undef とは違う名前にしようとは思っています。