読者です 読者をやめる 読者になる 読者になる

レガシーコード生産ガイド

私に教えられることなら

NASM / Linux x86-64でForth開発日誌

そろそろjonesforth名乗るのもな、というカンジになってきたのでとりあえず日記のタイトルを変えた。

いよいよ楽しい自己拡張タイムになったので、気づいたら今日一日中ひっきりなしに触ってた。今のところ、Forth処理系作ってて最も楽しいとこは、最初のワードを実行・コンパイルするとこと、文法を自己拡張していくとこだと思う。

前にJavaScriptで作った処理系組み込みワードを自分で参考にしつつ、分岐・ループ・文字列・変数までできた。

https://github.com/phaendal/jf64/blob/master/builtin.fs

f:id:phaendal:20150704234231g:plain

quek氏のchocoforthのわかりやすいコード・コメントを参考にしたおかげで、難関そうだった文字列もなんとか生成と比較はできるようになった。

あと、途中で組み込みワードのファイルがシステムコールread用のバッファ4096バイトを使いきってしまって困った。ファイルからの読み込みを改行で一旦区切ることができたらいいんだけど、調べてもよくわからなかったのでとりあえずバッファを65536バイトに拡張して先延ばしにした。

ローカル変数とクォーテーションができると一気にコードが書きやすくなるので、次はそこを目指したい。private、vocabulary、regionあたりまでできれば普通に大きめのソフトも作れるかな?フレームバッファでグラフィック操作するのも楽しそうだ。

広告を非表示にする