comparison paper/gearsOS.tex @ 11:10cb71d30fc0

Add emblem
author Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
date Mon, 22 Jan 2018 12:05:33 +0900
parents a0f9def49535
children 77c129874cfa
comparison
equal deleted inserted replaced
10:a0f9def49535 11:10cb71d30fc0
140 140
141 Interface での Code Gear 呼び出しは ``goto interface-\textgreater method'' という構文で行う。 141 Interface での Code Gear 呼び出しは ``goto interface-\textgreater method'' という構文で行う。
142 ここの interface は createSingleLinkedQueue(\coderef{singleLinkedQueue} 3-14 行目) 等で初期化を行った Interface へのポインタ、method は実装した Code Gear の番号になる。 142 ここの interface は createSingleLinkedQueue(\coderef{singleLinkedQueue} 3-14 行目) 等で初期化を行った Interface へのポインタ、method は実装した Code Gear の番号になる。
143 143
144 \coderef{singleLinkedQueueTest} に Queue Interface を使用した Code Gearの呼び出し例を示す。 144 \coderef{singleLinkedQueueTest} に Queue Interface を使用した Code Gearの呼び出し例を示す。
145 この呼び出しでは SingleLinkedQueue の put 実装に接続される。 145 この呼び出しでは SingleLinkedQueue の put 実装に継続される。
146 146
147 \lstinputlisting[caption=Queue Interface での Code Gear の呼び出し, label=code:singleLinkedQueueTest]{./src/singleLinkedQueueTest.cbc} 147 \lstinputlisting[caption=Queue Interface での Code Gear の呼び出し, label=code:singleLinkedQueueTest]{./src/singleLinkedQueueTest.cbc}
148 148
149 \coderef{singleLinkedQueueTest} は実際にはスクリプトによって \coderef{singleLinkedQueueTest_script} に変換されコンパイルされる。 149 \coderef{singleLinkedQueueTest} は実際にはスクリプトによって \coderef{singleLinkedQueueTest_script} に変換されコンパイルされる。
150 \coderef{singleLinkedQueueTest_script} 内の Gearef マクロは Context から Interface の引数格納用の Data Gear を取り出す。 150 \coderef{singleLinkedQueueTest_script} 内の Gearef マクロは Context から Interface の引数格納用の Data Gear を取り出す。
151 この引数格納用の Data Gear は Context の初期化の際に生成される。 151 この引数格納用の Data Gear は Context の初期化の際に生成される。
152 引数格納用の Data Gear を取り出した後は変換前の呼び出しの引数を Interface で定義した Code Gear の引数情報に合わせて格納し、指定した Code Gear に接続する。 152 引数格納用の Data Gear を取り出した後は変換前の呼び出しの引数を Interface で定義した Code Gear の引数情報に合わせて格納し、指定した Code Gear に継続する。
153 153
154 \lstinputlisting[caption=スクリプトによる変換後, label=code:singleLinkedQueueTest_script]{./src/singleLinkedQueueTest_script.cbc} 154 \lstinputlisting[caption=スクリプトによる変換後, label=code:singleLinkedQueueTest_script]{./src/singleLinkedQueueTest_script.cbc}
155 155
156 \section {stub Code Gear} 156 \section {stub Code Gear}
157 stub Code Gear は Code Gear の接続の間に挟まれる Meta Code Gear である。 157 stub Code Gear は Code Gear の接続の間に挟まれる Meta Code Gear である。
164 164
165 \lstinputlisting[caption=stub Code Gear, label=code:stubCodeGear]{./src/stubCodeGear.cbc} 165 \lstinputlisting[caption=stub Code Gear, label=code:stubCodeGear]{./src/stubCodeGear.cbc}
166 166
167 stub Code Gear はユーザーが自前で記述することも可能である。 167 stub Code Gear はユーザーが自前で記述することも可能である。
168 つまり、ユーザーがメタ計算を記述することができる。 168 つまり、ユーザーがメタ計算を記述することができる。
169 stub Code Gear を用いたメタ計算の例として、本来 stub Code Gear は対応した Code Gear に接続するが、自前で stub Code Gear を記述することで、接続先を柔軟に変更できる。 169 stub Code Gear を用いたメタ計算の例として、本来 stub Code Gear は対応した Code Gear に継続するが、自前で stub Code Gear を記述することで、継続先を柔軟に変更できる。