Hello World VM: 「Hello World プログラムを動かす仮想マシン」

Hello World プログラムといえば,たとえば Ruby なら

p 'Hello World!'

こんなんで,Java なら

public class HelloWorld {
       public static void main( String argv[] ){
       	      System.out.println("Hello World!");
       }
}

C# なら

public class HelloWorld {
       public static void Main( string [] argv ){
       	      System.Console.WriteLine("Hello World!");
       }
}

C なら

#include <stdio.h>
void main()
{
	printf("Hello World!\n");
}

こんな感じで簡単に書ける.というか一番簡単なプログラムの例という意味だから,簡単に書けるのはあたりまえ.
それで,あるときちょっと思ったのが「 Hello World プログラムを動かす言語処理系(仮想マシン)は簡単に作れるのだろうか」という疑問だった.それで,とりあえず Java と CIL の VM を試しに作ってみた.こんなことをする人が他にいるのか分からないけど,何かの参考になるかもしれないので,作る過程とかつまずきポイントとかをつらつらまとめてみる.