changeset 19:68ea0500773f

update
author mir3636
date Wed, 30 Jan 2019 19:36:41 +0900
parents c38593d39041
children 1c7e6703724a
files paper/interface.tex paper/master_paper.pdf
diffstat 2 files changed, 9 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/paper/interface.tex	Wed Jan 30 17:10:15 2019 +0900
+++ b/paper/interface.tex	Wed Jan 30 19:36:41 2019 +0900
@@ -16,14 +16,15 @@
 この領域に確保された Data Gear へのアクセスは Interface の情報から行われる。
 
 
-ソースコード\ref{notref} は、pushSingleLinkedStack の stub Code Gear を含めたソースコードである。
+ソースコード\ref{pushStack} は、pushSingleLinkedStack のソースコードである。
 ノーマルレベルの Code Gear では Stack の push の操作は、
 push するデータと次の継続先の Code Gear という引数の集合のように見える。
 しかしメタレベルでは Context が持つ構造体である。
 
-stub Code Gear では
+stub Code Gear では Context が確保した 引数格納用の領域に格納した Data Gear を取り出している。
+Interface を導入することでノーマルレベルとメタレベルのズレの調整を解決した。
 
-\begin{lstlisting}[frame=lrbt,label=notref,caption={pop stub Code Gear}]
+\begin{lstlisting}[frame=lrbt,label=pushStack,caption={pushSingleLinkedStack}]
 __code stackTest1(struct Stack* stack) {
     Node* node = new Node();
     node->color = Red;
@@ -46,25 +47,25 @@
 }
 \end{lstlisting}
 
-(もっと細かく書く)
-
 ソースコード\ref{interface}は Stack の Interface である。
 \_\_code で記述されているものは Stack が実装するべき push や pop などの Code Gear、
-union Data で記述されているものは、Stack の Code Gear の引数の Data Gear である。 
+union Data で記述されているものは、Stack の Code Gear で用いる全ての Data Gear である。
+Interface で引数として用いる Data Gear は全てここで表されている。
 
 \lstinputlisting[label=interface, caption=StackのInterface]{./src/Stack.cbc}
 
 
 通常 Code Gear、Data Gear に参照するためには Context を通す必要があるが、
 Interface を記述することでデータ構造の API と Data Gear を結びつけることが出来る。
+これによりノーマルレベルとメタレベルの分離が可能となった。
 
 \section{Interface の実装}
 ソースコード\ref{implement}は Stack の実装の例である。
 create の関数は 実装の初期化である。
 ソースコード\ref{implement} 6〜12行目で実装の Code Gear に代入しているものは Context が
 持つ enum で定義された Code Gear の番号である。
-ソースコード \ref{Gears_code} 3行目で stack->pop へと goto しているが、
-stack->pop には Code Gear の番号が入っているため実装した Code Gear へと継続する。
+ソースコード \ref{Gears_code} 3行目で stack\verb|->|pop へと goto しているが、
+stack\verb|->|pop には Code Gear の番号が入っているため実装した Code Gear へと継続する。
 このため、ソースコード \ref{Gears_code} では 6行目の popSingleLinkedStack へと継続している。
 
 \lstinputlisting[label=implement, caption=SingleLinkedStackの実装]{./src/stackimpl.cbc}
Binary file paper/master_paper.pdf has changed