changeset 22:ada9b562891d

...
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Sat, 30 Jan 2021 15:00:31 +0900
parents 48d1dc04c1c4
children c69811b44e7c
files paper/chapter/02-interface.tex paper/master_paper.pdf
diffstat 2 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/paper/chapter/02-interface.tex	Sat Jan 30 13:40:36 2021 +0900
+++ b/paper/chapter/02-interface.tex	Sat Jan 30 15:00:31 2021 +0900
@@ -34,13 +34,16 @@
 StubCodeGearは自動生成されてしまうため、 値の取り出し以外のことを行う場合は自分で実装する必要がある。
 しかしモデル検査に関する処理は様々なCodeGearの後に行う必要があるため、 すべてのCodeGearのStubを静的に実装するのは煩雑である。
 
-ノーマルレベルのCodeGearの処理の後に、\texttt{\_\_code meta}以外のMeta CodeGearに遷移可能なAPIが必要となる。
+ノーマルレベルのCodeGearの処理の後に、StubCodeGear以外のMeta Code Gearを実行したい。
+Stub Code Gearに直ちに遷移してしまう\texttt{\_\_code meta}以外のMeta CodeGearに、 特定のCodeGearの計算が終わったら遷移したい。
+このためには、特定のCodeGearの遷移先のMetaCodeGearをユーザーが定義できるAPIが必要となる。
 このAPIを実装すると、ユーザーが柔軟にメタ計算を選択することが可能となる。
 
 GearsOSのビルドシステムのAPIとして\texttt{meta.pm}を作製した。
 これはPerlのモジュールファイルとして実装した。
 Perlで実装されたGearsOSのトランスコンパイラであるgenerate\_stub.plから呼び出される。
 meta.pmの中のサブルーチンである\texttt{replaceMeta}に変更対象のCodeGearと変更先のMetaCodeGearへのgotoを記述する。
+ユーザーはmeta.pmのPerlファイルをAPIとしてGearsOSのトランスコンパイラにアクセスすることが可能となる。
 
 具体的な使用例をコード\ref{src:metapm}に示す。
 meta.pmはサブルーチン\texttt{replaceMeta}が返すリストの中に、特定のパターンで配列を設定する。
Binary file paper/master_paper.pdf has changed