Mercurial > hg > Papers > 2019 > anatofuz-thesis
changeset 47:3f52d5153c09
update
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 15 Feb 2019 17:24:45 +0900 |
parents | 1d637bad458d |
children | e08406aa6917 |
files | paper/chapter4.tex paper/main.pdf |
diffstat | 2 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/chapter4.tex Fri Feb 15 16:03:08 2019 +0900 +++ b/paper/chapter4.tex Fri Feb 15 17:24:45 2019 +0900 @@ -148,3 +148,11 @@ \lstinputlisting[frame=lrbt, label=cbc_next, caption=cbc\_next及びCbCMoarVMでのマクロ例]{./codes/src/cbc-interp-next.cbc} + +CodeGear間の軽量継続を中心に設計している為、 switch case文を利用するマクロは削除した。 +また、 各マクロの引数に、 変数iを導入している。 + 変数i は、 バイトコードインタプリタ内で利用する、 MoarVMのレジスタ情報などが格納された、 構造体へのポインタである。 +iが示す構造体INTER、 呼び i の型である構造体INTERPは、 ソースコード\ref{cbc_inter}の示すように宣言している。 +これは、マクロ内部で現在の命令を示すopや、 命令列 cur\_op にアクセスする必要があるが、 従来のマクロの記述ではCbCを利用した場合に、変数にアクセス出来なくなる為に導入している。 + +\lstinputlisting[frame=lrbt, label=cbc_inter, caption=MoarVMの情報を格納した構造体INTER]{./codes/src/INTERP.h}