* Essen Rev2
-(by [[K]], 2017.07.31)

** (0)
-EssenRev1が完成しないうちから、Rev2の構想が進んでしまいました。

** (1)
-EssenRev2では実行方式がJITコンパイル方式になります。
-EssenRev1では「速度はどうでもいい、速さがほしければインラインC言語で書けばいい」という立場をとっていましたが、JITコンパイル方式にするだけで性能が100倍くらい変わりそうで、やっぱりそんなに差が出るのならJITコンパイル方式を採用すべきかもなあ、と考えかが変わったのです。
--10倍未満なら、まあそんなもんだよなーと思えたのですが・・・。

-JITコンパイル方式だと、変換速度は実行速度にほとんど影響しないので、アルゴリズムをあまりがんばらなくてもよくなります。それは気楽なので、メリットの一つです。
--もちろん、ダメダメなコードを生成してはいけませんが。

** (2)
-JIT00 : 仮想アセンブラ(JIT00) → 機械語
--CPUに依存する最下層のレイヤ

-JIT01 : Essen → JIT00
--EssenからJIT00へ変換するレイヤ

-それぞれのレイヤは、C言語のライブラリ関数として実装されます。別々の実行ファイルになるわけではありません。実行したいプログラムを文字列として読み込んで、それをJIT01にかけて、その結果をJIT00にかけて、出てきたバイナリをC言語の関数呼び出しで呼び出せば、それで実行できるという仕組みです。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS