yarv-dev:86
From: shudo computer.org
Date: Mon, 21 Jun 2004 17:13:50 +0900
Subject: [yarv-dev:86] Re: AOT Compiler
ささださん、皆様、首藤です。 > JIT コンパイラ: ネイティブコードをせこせこ吐く > AOT コンパイラ: Ruby Script -> C コード -> shared library として実行 > > という計画を考えてました. > > JIT コンパイラはネイティブコードを吐くのに、 > > なんで AOT コンパイラは C ソースコードを吐くんでしょうか。 > > > > 両コンパイラの出力は共通にして、同じコンパイラを使いまわす、というのが > > 普通のやり方のように思います。 「両コンパイラの出力は共通にする」というのは、 JIT コンパイラと AOT コンパイラで 基本部分 (parse -> 最適化 -> コード生成) を共通化する、 ということです。 わかりにくくてごめんなさい。 > JIT compiler でも,UTI lisp は実行時に c compiler 呼んでるって > 話は聞いたことがあります.でも,それはちょっと富豪過ぎませんかね. > 時間なくなったらそうするかも. 以下が伴えば、コンパイラを呼び出しちゃうのもいいんじゃないでしょうか。 - コンパイル結果をキャッシュして使いまわす。 - production run のときにだけ enable できるか、 または、開発時には disable できる。 3,4年前に、奈良先端の蟻川さんが作ったという Java バイトコードの JIT コンパイラは、外部の C コンパイラを呼び出していたと思います。 共有ライブラリを作ってロードしていたと思います。 GCJ (Java の AOT コンパイラ) を JIT コンパイラとして使おうという試みが ありました。 From: Andrew Haley <aph at redhat dot com> Date: Thu, 2 Jan 2003 17:18:25 +0000 (GMT) Subject: Using gcj as a JIT Compiler http://gcc.gnu.org/ml/java/2003-01/msg00022.html あとはせめて、C コンパイラ (というか GCC) をプログラム中から呼び出す API があると、C コンパイラのプロセスを起動するオーバヘッドはなくせて、 いいのかも。 御存じかと思いますが、 Java 方面では、Java コンパイラ (javac とか) をプログラムから呼び出す API が策定されています: JSR 199: Java(TM) Compiler API http://jcp.org/en/jsr/detail?id=199 アプリケーションサーバは、JSP を扱うために Java コンパイラを呼び出す必要があるので、 こういった API の需要があります。 あとは IDE。 Kazuyuki Shudo/首藤一幸 私をたばねないで あらせいとうの花のように shudo computer.org http://www.shudo.net/ -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
85 2004-06-21 15:52 [ko1 atdot.net ] AOT Compiler -> 86 2004-06-21 17:13 ┗[shudo computer.org ] 87 2004-06-21 17:37 ┗[ko1 atdot.net ] 88 2004-06-21 18:58 ┗[maeda-yarv atusi.org] 89 2004-06-21 20:35 ┗[ko1 atdot.net ] 90 2004-06-21 21:51 ┗[(nil) ] 91 2004-06-22 01:58 ┗[ko1 atdot.net ] 92 2004-06-22 13:12 ┗[maeda-yarv atusi.org] 93 2004-06-22 18:58 ┗[ko1 atdot.net ]