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

本当は怖い情報科学

情報系大学院生の趣味&実益ブログ。

GreenScheme(1)

製作日記

ちらっと書いたけど、手元でScheme処理系を作っているところ。今までは、ちょろっと書いて、なんとなく動くところまで来たあたりで飽きていたのだが、今回は本気で作ろうかなーと。時間が取れるようになったというのもあり。

名前は、"Green Scheme"に決定。命名理由は特になし。手元の開発コードというかディレクトリ名に色の名前を使っているので、そのまま正式なプロジェクト名にしてしまった。


というわけで、現状としては簡単なバイトコードインタプリタ(VM)が動作した段階。命令列をプログラムで定義して与えなくちゃならないw。というわけで、これから

を作ろうかと思案中。


なぜバイトコードアセンブラを作るのかというと、


処理系の構造とか特徴としては、

  • C++で実装
  • GCは素直なCopying GC
  • 3impの Stack Based Virtual Machineを踏襲
  • (将来的には)マルチVMにすることを意識した構造


その他メモ

すでにScheme処理系はたくさんあるし、実用するならGaucheでいいじゃんという感じなわけで、あんまり普通のものを使っても仕方がない。なのでちょっと特徴を出したい。GCはCheneyのアルゴリズムを使ったCopying GCなので、並列化は非常に難しい。なので、マルチVMとして1つのVM内では完全にシングルスレッド(またはグリーンスレッド)にして並列化をあきらる。VM同士をネイティブスレッドで動作させて、VM同士は専用のQueueかPipeで通信するというようにしてみようかなーと思案中。

まぁまだまだ先の話なので、どうなる事やら。

【広告】