WEKO3
アイテム
Ruby用仮想マシンにおけるAOTコンパイラ
https://ipsj.ixsq.nii.ac.jp/records/16419
https://ipsj.ixsq.nii.ac.jp/records/164198d960970-40ef-4d8b-b1cd-a08233a8d662
名前 / ファイル | ライセンス | アクション |
---|---|---|
![]() |
Copyright (c) 2009 by the Information Processing Society of Japan
|
|
オープンアクセス |
Item type | Trans(1) | |||||||
---|---|---|---|---|---|---|---|---|
公開日 | 2009-01-27 | |||||||
タイトル | ||||||||
タイトル | Ruby用仮想マシンにおけるAOTコンパイラ | |||||||
タイトル | ||||||||
言語 | en | |||||||
タイトル | AOT Compiler for Ruby Virtual Machine | |||||||
言語 | ||||||||
言語 | jpn | |||||||
キーワード | ||||||||
主題Scheme | Other | |||||||
主題 | 発表概要 | |||||||
資源タイプ | ||||||||
資源タイプ識別子 | http://purl.org/coar/resource_type/c_6501 | |||||||
資源タイプ | journal article | |||||||
著者所属 | ||||||||
東京大学大学院情報理工学系研究科 | ||||||||
著者所属 | ||||||||
東京大学大学院情報理工学系研究科 | ||||||||
著者所属 | ||||||||
東京大学大学院情報理工学系研究科 | ||||||||
著者所属 | ||||||||
東京大学大学院情報理工学系研究科 | ||||||||
著者所属 | ||||||||
東京大学大学院情報理工学系研究科 | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Graduate School of Information Science and Technology, The University of Tokyo | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Graduate School of Information Science and Technology, The University of Tokyo | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Graduate School of Information Science and Technology, The University of Tokyo | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Graduate School of Information Science and Technology, The University of Tokyo | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Graduate School of Information Science and Technology, The University of Tokyo | ||||||||
著者名 |
五嶋宏通
× 五嶋宏通
|
|||||||
著者名(英) |
Hiromichi, Goto
× Hiromichi, Goto
|
|||||||
論文抄録 | ||||||||
内容記述タイプ | Other | |||||||
内容記述 | 本研究では,プログラミング言語Rubyのさらなる高速化を実現するため,動的言語特有の問題を考慮しながら,Rubyスクリプトを静的に機械語に変換するAOT(Ahead-Of-Time)コンパイラを開発した.RubyスクリプトをVM命令列へ変換し,その命令列をC言語のソースコードへ変換する.変換したソースコードはC言語コンパイラにより各アーキテクチャの機械語に変換する.Rubyは言語仕様上,最適化が困難な点が多くあり本発表ではこれらについても明らかにする.本研究ではRubyの仕様を完全に満たしたまますべてのスクリプトを高速化させることを目指す.変換後のプログラムは,仮想マシンと協調して動作させることにより互換性を高めている.さらに,RubyスクリプトのC言語への変換時に以下の最適化処理を行った.(1) VM命令ディスパッチの削減.(2) プログラムカウンタ計算の削減.(3) スタック操作の削減.(4) VM環境でのC言語関数の利用.(5) 関数呼び出しによるメソッド呼び出しの高速化.本AOTコンパイラを評価したところ,ペントミノパズルを解くプログラムを動作させたとき既存の処理系と比べて最大1.44倍の高速化を達成することができた. | |||||||
論文抄録(英) | ||||||||
内容記述タイプ | Other | |||||||
内容記述 | We implemented an AOT (Ahead-Of-Time) compiler for further fast execution of Ruby scripts considering the aspect that Ruby is a dynamic language. Our AOT compiler translates from Ruby script to C source code through VM instructions. C compiler translates to native code on each environment. Ruby's language specification make difficult to optimize performance. In this paper, we show these difficulties. Our goal is that all Ruby scripts can run faster than now, so it is needed to satisfy all Ruby's specification. Translated programs run with current virtual machine for compatibility improvement. We introduced 5 optimizations when translating from Ruby to C. (1) Elimination of dispatch VM instructions. (2) Reduction of calculate program counter. (3) Reduction of stack operation. (4) Using C functions in VM environment. (5) Acceleration Ruby's method call with C function call. We evaluated our AOT compiler with a pentomino puzzle resolver program. The evaluation result shows that our technique is up to 1.44 times faster than current implementation. | |||||||
書誌レコードID | ||||||||
収録物識別子タイプ | NCID | |||||||
収録物識別子 | AA11464814 | |||||||
書誌情報 |
情報処理学会論文誌プログラミング(PRO) 巻 2, 号 1, p. 21-21, 発行日 2009-01-27 |
|||||||
ISSN | ||||||||
収録物識別子タイプ | ISSN | |||||||
収録物識別子 | 1882-7802 | |||||||
出版者 | ||||||||
言語 | ja | |||||||
出版者 | 情報処理学会 |