『コンパイラ 作りながら学ぶ』を読み始めてみた

自分が興味ある分野ってなんだろうと考えたけれど、WEBとか心の奥底では食っていく手段としか考えてないし、人工知能とかIoTとかにも大して興味ないし、VRにはまあ多少興味あるけどそれもゲームとかが好きで普段からバリバリやってる人に比べたら無いに等しいくらいしか興味ないし、スマホアプリとかもさっぱり興味ないし、なんだろうなあ。。。

と毎日悩んでいたけど、多分コンパイラに興味がある。構文解析とか仮想マシンとか、そういうのに心を惹かれる。なのに今まで避けていた。コンパイラとかはちゃんと情報系の大学院とかを出た偉い人がやる分野だと先入観があり、自分がやるようなことではないと思っていたのだ。

しかし、コンピュータの分野で興味を引かれるのって本当にコンパイラくらいだ。なんでかと問われても、自分でもなぜかはわからない。プログラミング言語を作りたいという欲求があるわけでもない。ただなんとなくコンパイラは面白そうだ。

人生は短い。特にプログラミングを始めるのが人よりだいぶ遅かった自分のような人間は、本当にやりたいことだけをやるべきだと思った。だから独学でコンパイラの勉強しょうと思った。それで食えるかと言われたら、まあ食えないだろうが、面白いことをやるべきだ。面白いことがなければ、人生はやってられない。

もちろん飯を食っていくためには別のこともやんないといけない。そこはまあ、人工知能様がWEBの現場を破壊し尽くしてくれるまではPHPMySQLJavaScriptという三種の神器でのらりくらりやってくしかないだろう。

手始めに『コンパイラ 作りながら学ぶ』を読み始めた。ビギナー向けの本だ。大学の学部生向けの本らしい。しかし情報系の学校に行ったこともなければ理系ですらない自分には大変むずかしい。しかし面白い。章末問題ですら楽しい。

2章の章末問題を解いてみたので、GitHubにあげてみた。

github.com

普段Cは殆ど書かないので、自分でもクソなコードだと思うが、なんとか解けた(実はテストがだめで全く解けてないという可能性も高いが)。

自分は性格的に、目に見えるものにはあまり興味が向かないようだ。大体目に見えない、下層にあるものとか、原理的なことばっかりに興味が向く。そしてそれはだいたい役に立たない。その上極めるには金と時間がかかる。だからこうして産業廃棄物ができあがったわけ。

しかし産廃産廃なりに、自分の運命を受け入れて、なんとか楽しく産廃としての一生を終えねばと思う。

産廃コンパイラの勉強をする。