changeset 20:1c7e6703724a

update
author mir3636
date Wed, 30 Jan 2019 20:11:35 +0900
parents 68ea0500773f
children 2f235b4308d2
files paper/interface.tex paper/master_paper.pdf
diffstat 2 files changed, 12 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/paper/interface.tex	Wed Jan 30 19:36:41 2019 +0900
+++ b/paper/interface.tex	Wed Jan 30 20:11:35 2019 +0900
@@ -15,7 +15,6 @@
 Code Gear が継続する際にはこの領域に引数の Data Gear を格納する。
 この領域に確保された Data Gear へのアクセスは Interface の情報から行われる。
 
-
 ソースコード\ref{pushStack} は、pushSingleLinkedStack のソースコードである。
 ノーマルレベルの Code Gear では Stack の push の操作は、
 push するデータと次の継続先の Code Gear という引数の集合のように見える。
@@ -47,10 +46,17 @@
 }
 \end{lstlisting}
 
+\section{Interface の定義}
+
 ソースコード\ref{interface}は Stack の Interface である。
-\_\_code で記述されているものは Stack が実装するべき push や pop などの Code Gear、
-union Data で記述されているものは、Stack の Code Gear で用いる全ての Data Gear である。
-Interface で引数として用いる Data Gear は全てここで表されている。
+typedef struct Stack で Interface を定義する。
+Impl には実装の型が入る。
+ソースコード\ref{interface}、2〜4行目のunion Data で定義されてるものは、
+Interface の API で用いる全ての Data Gear である。
+Interface の全ての API で用いる全ての Data Gear は Interface で定義される。
+ソースコード\ref{interface}、5〜13行目の \_\_code で記述されているものは、
+Interface の API である。
+ここでは Stack のAPI である push や pop などの Code Gear となっている。
 
 \lstinputlisting[label=interface, caption=StackのInterface]{./src/Stack.cbc}
 
@@ -62,9 +68,9 @@
 \section{Interface の実装}
 ソースコード\ref{implement}は Stack の実装の例である。
 create の関数は 実装の初期化である。
-ソースコード\ref{implement} 6〜12行目で実装の Code Gear に代入しているものは Context が
+ソースコード\ref{implement}、6〜12行目で実装の Code Gear に代入しているものは Context が
 持つ enum で定義された Code Gear の番号である。
-ソースコード \ref{Gears_code} 3行目で stack\verb|->|pop へと goto しているが、
+ソースコード \ref{Gears_code}、3行目で stack\verb|->|pop へと goto しているが、
 stack\verb|->|pop には Code Gear の番号が入っているため実装した Code Gear へと継続する。
 このため、ソースコード \ref{Gears_code} では 6行目の popSingleLinkedStack へと継続している。
 
Binary file paper/master_paper.pdf has changed