Mercurial > hg > Papers > 2019 > anatofuz-thesis
changeset 106:e3c459b29e98
update
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 19 Feb 2019 17:39:50 +0900 |
parents | 1a0210c2814b |
children | eaa12816b3e3 |
files | presen/slide.html presen/slide.md presen/slide.pdf presen/slide.pdf.html |
diffstat | 4 files changed, 38 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/presen/slide.html Tue Feb 19 17:26:03 2019 +0900 +++ b/presen/slide.html Tue Feb 19 17:39:50 2019 +0900 @@ -256,10 +256,24 @@ <div class='slide'> <!-- _S9SLIDE_ --> +<h2 id="mvm_interp_runの内部処理">MVM_interp_runの内部処理</h2> + +<ul> + <li>MoarVMは関数 <code>MVM_interp_run</code> でバイトコードに応じた処理を実行する</li> + <li>gccやclangを利用してコンパイルした場合、 ラベルgotoで命令ディスパッチが実行される</li> +</ul> + +<img src=”fig/origin_label_goto.svg” width=”30%” text-align:center;padding-left: 300px;> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> <h2 id="moarvmのバイトコードインタプリタ-1">MoarVMのバイトコードインタプリタ</h2> <ul> - <li>MoarVMは関数 <code>MVM_interp_run</code> でバイトコードに応じた処理を実行する</li> <li>マクロDISPATCHで, ラベルgotoかcase文に変換が行われる <ul> <li>バイトコードは数値として見る事が出来る為、 case文に対応する事が出来る</li>
--- a/presen/slide.md Tue Feb 19 17:26:03 2019 +0900 +++ b/presen/slide.md Tue Feb 19 17:39:50 2019 +0900 @@ -93,9 +93,15 @@ - その処理を実行する - この処理をバイトコードディスパッチと呼び、 実行する部分をバイトコードインタプリタと呼ぶ +## MVM_interp_runの内部処理 + +- MoarVMは関数 `MVM_interp_run` でバイトコードに応じた処理を実行する +- gccやclangを利用してコンパイルした場合、 ラベルgotoで命令ディスパッチが実行される + +<img src="fig/origin_label_goto.svg" width="30%" text-align:center;padding-left: 300px;> + ## MoarVMのバイトコードインタプリタ -- MoarVMは関数 `MVM_interp_run` でバイトコードに応じた処理を実行する - マクロDISPATCHで, ラベルgotoかcase文に変換が行われる - バイトコードは数値として見る事が出来る為、 case文に対応する事が出来る - この中の `OP` で宣言されたブロックがそれぞれバイトコードに対応する処理となっている. @@ -111,6 +117,7 @@ ``` + ## MVM_interp_runで使用されているマクロ ```
--- a/presen/slide.pdf.html Tue Feb 19 17:26:03 2019 +0900 +++ b/presen/slide.pdf.html Tue Feb 19 17:39:50 2019 +0900 @@ -240,10 +240,24 @@ <div class='slide'> <!-- _S9SLIDE_ --> +<h2 id="mvm_interp_runの内部処理">MVM_interp_runの内部処理</h2> + +<ul> + <li>MoarVMは関数 <code>MVM_interp_run</code> でバイトコードに応じた処理を実行する</li> + <li>gccやclangを利用してコンパイルした場合、 ラベルgotoで命令ディスパッチが実行される</li> +</ul> + +<p><img src=”fig/origin_label_goto.svg” width=”30%” text-align:center;padding-left: 300px;></p> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> <h2 id="moarvmのバイトコードインタプリタ-1">MoarVMのバイトコードインタプリタ</h2> <ul> - <li>MoarVMは関数 <code>MVM_interp_run</code> でバイトコードに応じた処理を実行する</li> <li>マクロDISPATCHで, ラベルgotoかcase文に変換が行われる <ul> <li>バイトコードは数値として見る事が出来る為、 case文に対応する事が出来る</li>