研究概要 |
昨年度、FreeBSD上に作成した、OSの機能を切り離して動作するUtilisp処理系を利用し、裸のIBM-PC上で動作するUtilisp処理系の実現[1]を目指した。処理系の大半はIBM-PC上で動くことを確認し、現在は、1)シグナルの処理をcatch, throw (Cプログラムとしては、setjmp(), longjmp())を利用して記述する;2)ファイル入出力を実現するために、ディスク上のデータをUtilispの文字列にマッピングする(詳細は後述);3)裸の計算機上での実行開始ルーチンの作成;を残すのみとなっている。 これらの残された問題点の内、1)と3)に関しては実装方針も決まり、現在プログラミング並びに虫取りを行っている。また、2)に関しては、以下の方針で実装する予定である。 a)ディスクのセクタをUtilispの文字列として対応付け管理する。 b)Utilispのstring-stream関数を利用し、ファイルのように扱う。 c)ファイルシステムの管理等はUtilispで記述する。つまり、a)のみをCで記述し、b),c)の機能はUtilispの関数として実現する。Lispはシンボルの操作に長けた言語なので、Unixのnamei()などの煩雑な関数を再プログラミングする必要はなくなると考えている。
|