GreenScheme(1)
ちらっと書いたけど、手元でScheme処理系を作っているところ。今までは、ちょろっと書いて、なんとなく動くところまで来たあたりで飽きていたのだが、今回は本気で作ろうかなーと。時間が取れるようになったというのもあり。
名前は、"Green Scheme"に決定。命名理由は特になし。手元の開発コードというかディレクトリ名に色の名前を使っているので、そのまま正式なプロジェクト名にしてしまった。
というわけで、現状としては簡単なバイトコードインタプリタ(VM)が動作した段階。命令列をプログラムで定義して与えなくちゃならないw。というわけで、これから
を作ろうかと思案中。
- デバッグやチューニングが楽だから
- 作りたいから。
- 他の言語からGreenVMへコンパイルしたいから(特にJavascript)
処理系の構造とか特徴としては、
その他メモ
すでにScheme処理系はたくさんあるし、実用するならGaucheでいいじゃんという感じなわけで、あんまり普通のものを使っても仕方がない。なのでちょっと特徴を出したい。GCはCheneyのアルゴリズムを使ったCopying GCなので、並列化は非常に難しい。なので、マルチVMとして1つのVM内では完全にシングルスレッド(またはグリーンスレッド)にして並列化をあきらる。VM同士をネイティブスレッドで動作させて、VM同士は専用のQueueかPipeで通信するというようにしてみようかなーと思案中。
まぁまだまだ先の話なので、どうなる事やら。