C# as scripting language

自分用メモ

ガベコレの実装は圧巻としかいいようがない。対してVMそのものの実装については、スクリプト言語インタープリタあるいはVMを作ったことがある人はそれなりにいるだろう。相手がCIL(.NETのIL)だとものすごく仕様が大きいように思えるのは確かだけど、本質的には他のスクリプト言語VM実装と大きく変わらないはずだ。

という視点で発表された結果だけ見ると当然こうなるべくしてこう実装されたと感じられるけれど、最初何もない状態でこの技術スタックを選択するには相当な度胸を要求されただろう。

List of CIL instructions - Wikipedia, the free encyclopedia

を見るとCILはスタックベースっぽい。ILをインタープリタ実行すると遅かったのでマイクロコードにしたと言っていたけどそれでどれくらいの違いが出たのか興味がある。

clangでC++コードを解析してC#から呼び出し可能にしたというのは * メソッドシグネチャを解析してメンバ関数呼び出しをする * 関数パラメータをMarshallingする というあたりかな。可変引数は…スクリプトとして使うなら考えなくてもよいだろう。

ゲームエンジンのプロトタイプを数人で2〜3ヶ月で作ったというけれど、どれくらい集中して作業できてたんだろうか。これまでのコード、特に自分が書いてないコードの使い回しをやるとちょっとしたところで障壁に当たってすぐに時間を浪費してしまったりするけれど、そういうケースはあったんだろうか。