お気楽プログラミング再開しました

4年くらい前に書いていたkissという名前のなんちゃってISLisp言語処理系をクラウドストレージから掘り出して、またいじりはじめました。

インタープリタとしてC言語で実装してありますね。setjmpなんかでLispのコントロール構造を実装してあります。

で、C言語なんですが、読めば一応わかりますが、重箱の隅は忘れているので、誉れ高いC言語のバイブルK&Rをネットで無料で調達して、リファレンスマニュアルをざっと確認しました。

いやー、いいですねプログラミングは…。

msys2をインストールして、gcc *.c でコンパイルしようとしたら、ワーニンングがたくさんでました。wchar_t関係ですね。で、頭にきたので全部charに変更して動くようにしました。昔ながらのstrcmpなんかが変な名前の関数使わなきゃいけないんでヤだったんですよね。

ただ楽しみのためだけにプログラミングすることにしました。

で、すでに偉そうにオブジェクトシステムとかジェネリックファンクションなんかも実装してあるので(そこで力尽きたみたいです)、ベクタとか残りを実装して、ノリでISOから規格書(約2万円!)もそのうち買って、規格準拠の処理系ですなんてすました顔して公開してみたいなと思っています。

 

yaccによるCコンパイラプログラミング

大学生のころ読んだと思います。近藤嘉雪さんに私淑していたんですね。

コンパイラが自力で書けるということは、なにか魔法使いになったようなとてもとても私にとって意味があることでした。

億万長者や王様になれるよりも魅力があると感じていたと思います。

これも捨てられない本ですね。

yacc は yet another compiler compilerですね。

 

「はじめて読む6809」「はじめて読む8086」

「はじめて読む6809」は中学か高校生のときに買って、アセンブリ言語(マシン語)というものを初めて勉強しました。これとアセンブラを作っていく過程が本になったもの2冊とあわせて自力でアセンブリ言語でプログラミングをし始めたと思います。だだをこねてオヤジに買ってもらった富士通のFM-new7で原始的なゲームを書いたような気もします。

「はじめてよむ8086」は大学生になってアルバイトをしてEPSONのPC-286というPC98互換機を買ったのがきっかけで買いました。Intelの8086はたしかアドレッシング・モードが下位の原始的なCPUとの互換性確保のために汚かったのをうっすらと覚えています。へんな制限があったんですよね。

中学生からプログラミングって、それもアセンブリ言語でって、本人は好きだからやったまでですが、私もつくづく因果者だと思います。

とはいえ、もうすぐ小学校からプログラミングの授業がはじまるらしいですね。