C言語の弱い部分はプリプロセッサである。
#if しかないが、せめて FOR文 ぐらい書けてくれ。
他にも FOPENして FSCAN して、ファイルの中身を配列初期値にしたり、三角関数や指数関数でループを回りながらテーブル初期値を算出したりしたい。
定数係数の重みを計算しながら、加算順序や構造体内をソーティングしたりしたい。
似たような関数をループで生成したい。
まあ、自作プリプロセッサを作れば済む話なんだが、なかなかスキルが及ばない。
ハードウェア記述言語の Verilog では、generate文がそこそこいい感じであるが、それでもまだまだ痒いところに手が届かない。
最強なのはLISPであろうか。コードとデータの区別がないので、マクロとプログラムが同じ言語で書かれていて区別はない。
しかも、コンパイル済みバイナリはインタプリタを含むし、インタプリタからコンパイルできるしでやりたい放題である。覚えたいが難しい言語である。
最近RTLを覚えたせいか、マクロの重要性を非常に痛感している。
いつか自分で言語を作るときはLSIP並みに自由度のあるマクロを搭載して、且つ、C言語やにやさしい言語にしたいものだ。
コメント