Pythonでインタプリタを作る、ということで頑張っていました。仕事もあったし結構時間はかかりましたがようやく完成。関数機能はもちろん、1次元ですが配列も装備! インタプリタ作成は1回目にはC++で、2回目にはC#で、今回は3回目です。C++からC#のときにはあまりなかった言語の違いによる違和感が、Pythonではかなりありました。定数がないとか(A = 2 など、変数に値をセットしてそれを定数として使う、ならできますが)、switch文がないとか(elifの繰り返しで同じ動作が実現できるが、分岐までの時間は一定にならない)、インデントが文法上の意味を持つとか(インデントした部分がブロックになる)、それなりに慣れた今でも違和感は拭いきれていませんが、慣れれば手軽な感じで使いやすい気はしています。
しかし……やはりいろいろ忘れていますね。せっかくインタプリタを作って理解したつもりでも、1年も経つと細かいことはきれいに忘れています。分かったことをまとめておくことの大事さが身にしみます。大学生のとき、先生が「友だちでやはり大学で教員をやっているやつがいるんだけれど、見習いたい」と言っていました。その友だちは勉強したことはノートにしっかりまとめるのだそう。ぼくも見習わなければ。というわけで備忘録、と思って解説を書いています。本屋さんに行けばプログラミングの本はそれこそ無数に出ています。でもそれらはほとんど「インタプリタでゲームなどのアプリケーションを作る」という本で、「インタプリタを作る」という本は数えるほどしかありません。何かの形できちんとまとめておけば、備忘録になることはもちろん、それなりに需要はあるはずです。