ISLispHyperDraftのタグ付けがだいたい終わりました

ISLispHyperDraftとは、プログラミング言語Lispの国際規格であるISLispの規格草案をHTML化したものです。

作業を始めてから、みなさんからのサポートや助言をいただきながら、すべての章のタグ付けが終わりました。いろいろとお世話様でした。

これからも、手を入れていく予定ですが、最初に私が望んだ見た目にはなったので、とりあえずは一段落したという感じです。

github.ioで閲覧できます。(リポジトリ)

それではみなさんハッピー・ハッキング!


ISLispHyperDraft is an html version of ISLisp specification draft.

ISLisp is a programming language Lisp standardized by ISO.

Almost all the tagging is done now.

I still intend to touch up here and there but for the time being, this is it.

You can browse it at github.io. (the repository is here)

Happy hacking!

2017年9月 ISLisp処理系KISS開発進捗状況

みなさん、おはようございます。

ISLisp処理系KISSですが、最近けっこう集中的に開発をしていて、色々な進展がありました。

・GC可能な全Lispオブジェクト構造体に、以前はポインタ2つ分のメンバを使っていたんですが、いまはGC用ポインタ1つだけにしました。GCで使うフラグはこのポインタ内の1ビットを使うようにしました。

・Lispオブジェクトを指し示すポインタ内部にいわゆるFixnumとFixcharを詰め込みました。これにより、普通の整数や文字の生成ではヒープからメモリ確保しなくてよくなりました。

・GNU MP数学ライブラリを使うことで、いわゆるBignumが使えるようになりました。

・rlwrapというGNU Readlineライブラリのラッパーコマンドを教えていただいたおかげで、コマンドラインでカッコの入力がやりやすくなりました。対応するカッコがブリンクするんですね。(./kis)

・C言語のinline関数を使い始めました。リスト操作系のほとんどすべての関数をインライン関数としてヘッダファイルkiss.hに移しました。

・C言語でのLisp用関数の実装で、使い捨てのLispオブジェクトは、できるだけconsしないように、つまり、スタックにLispオブジェクトを確保するようにし始めました。

・hash-tableを実装して、Symbol管理に使い始めました。


今後の作業予定は…

・テストコードをもっと書く。

・オブジェクトシステム(ILOS)のデータ構造を良くする。クラス専用のC構造体の用意とか。ただスロットの継承関係の表現で依然としてスロットはリストで表現するのが分かりやすいと判断しました(午後追記、ベクタにするいい方法を思いついたのでベクタにします)。

・ジェネリックファンクションも良いデータ構造を用意する。引数のクラスによるメソッド呼び出し用キャッシュとか…

・インタープリタとしてISLispとしてほぼ納得できるものにしてから、Cへのトランスレータを書く。

それではみなさん、Happy Hacking!

あ、あとISLisp規格ドラフトのHTMLバージョンをいろいろいじっています。