仮想機械ちゃん

なんかこの VM って言葉は紛らわしいですね。

VM という言葉は、言語処理系のためのソフトウェアという意味で使われる以上に、VMWare などのもっとローレベルな計算機の仮想化をさすことがあります。むしろ、一言 VM と言った場合、後者を指すことが多いように思います。

前者の意味です、はい。よく使われている上位 3 つは Flash, .NET, Java とったところでしょうか。これらは基本的に言語もバイトコードも実行環境もばらばらです。

自分で何か言語を設計したいと考えた場合、すでにある仕様にのっかるというのもありだと思います。例えば Groovy なんかみたいに。そうすれば VM には触れず、バイトコードへのコンパイラを作るだけで済みます。まぁバイトコードを理解することで十分 VM には触れていると思いますけど。逆に VM 作りたい人は、既存のバイトコードに対する VM を作ればいいわけです。いずれにしろ、対象とするバイトコードに対する知識が必要です。おすすめなのは、既存の VM で走るようなバイトコードを吐き出すパターンですね。ひどいバイトコード吐いたとしても、もしかしたら VM のスーパーダイナミックオプティマイゼーションで何とかしてくれるかもしれないので。

インタプリタは……どうなんでしょうね。というかこんなこと書こうと思ったのは

eXceed3rd (中略) …えー、HSPぃ?(差別的発言) まぁ、ウチのスペックなら問題ないけど。

に対するマジレスだったはずなんですが。まぁとりあえず.ax を .jar にするツールもあるみたいだし、関係なくもないということで。描画が遅いとのことですが、JNI とか使ったんでしょうか?そうでなければもったいないです。良い言語、良い実行環境、それぞれ別ですよね。悪い実行環境(=アプレット)で評価が割れる Java がかわいそうです。