[前][次][番号順一覧][スレッド一覧][生データ]

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       ]