changeset 58:ca050432ad63

update
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Sat, 16 Feb 2019 17:30:24 +0900
parents e16c3d3e30b2
children b1117ccb84a1
files prepaper/finalpre.pdf prepaper/finalpre.tex
diffstat 2 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
Binary file prepaper/finalpre.pdf has changed
--- a/prepaper/finalpre.tex	Sat Feb 16 17:16:19 2019 +0900
+++ b/prepaper/finalpre.tex	Sat Feb 16 17:30:24 2019 +0900
@@ -110,8 +110,10 @@
 
 \section{MoarVM}
 MoarVMはPerl6の専用の処理系であり、 C言語で実装されている。
+MoarVMはPerl6及び、Perl6の実装に用いられている、Perl6のサブセット言語であるNQPが生成したバイトコードを解釈する。
+バイトコードは、 NQPのインタプリタから出力可能である。
+
 JITコンパイルなどが現在導入されているが、 起動時間などが低速である問題がある。
-MoarVM独自のByteCodeがあり、 Perl6の記述言語であるNQPからこれを出力する機能などが存在している。
 
 MoarVMはレジスタマシンであり、 レジスタ操作や数値の加算を行う命令が存在する。
 この命令は、 Perl6プログラムが変換されたバイトコードによって指定される。
@@ -160,8 +162,10 @@
 
 
 \section{今後の課題}
-本研究では、 MoarVM の命令ディスパッチ部分のCodeGearへの変換を行った。
-この際に、 
+本研究では、 MoarVM の命令ディスパッチ部分がCodeGearの集合に変換可能である事を示した。
+また、 MoarVMの命令ディスパッチ部分をCodeGearの集合に変換するスクリプトや、 CbCで動作するMoarVMを作成した。
+今後は速度向上を目的とし、 ディスパッチ時に配列集合にアクセスせず、 直接次のCodeGearに遷移する Threaded CodeをCbCを用いての実装を検討する。
+また、 スクリプトが、使用する変数代入や分岐までの単位である、 基本ブロックを判別し、 動的にCbCのコードを生成するsymbolic executionなどの実装を検討する。
 
 \nocite{*}
 \bibliographystyle{junsrt}