comparison paper/cbc.tex @ 19:34de798b11c3

Add stub description
author atton <atton@cr.ie.u-ryukyu.ac.jp>
date Fri, 20 Jan 2017 14:53:16 +0900
parents 415fa6d79d00
children c748fb296673
comparison
equal deleted inserted replaced
18:415fa6d79d00 19:34de798b11c3
156 \item CodeGear が参照する DataGear へのポインタ 156 \item CodeGear が参照する DataGear へのポインタ
157 157
158 Meta CodeGear は Context を引数に取る CodeGear として定義されている。 158 Meta CodeGear は Context を引数に取る CodeGear として定義されている。
159 そのため、Meta CodeGear が DataGear の値を使う為には Context から DataGear を取り出す必要がある。 159 そのため、Meta CodeGear が DataGear の値を使う為には Context から DataGear を取り出す必要がある。
160 取り出す必要がある DataGear は enum を用いて定義し(リスト\ref{src:context} 11-14行)、 CodeGear を実行する際に data フィールドから取り出す。 160 取り出す必要がある DataGear は enum を用いて定義し(リスト\ref{src:context} 11-14行)、 CodeGear を実行する際に data フィールドから取り出す。
161 なお、この Context から DataGear を取り出す Meta CodeSegment を stub と呼ぶ。
162 \end{itemize} 161 \end{itemize}
162
163 なお、この Context から DataGear を取り出す Meta CodeSegment を stub と呼ぶ。
164 stub の例をリスト\ref{src:stub}に示す。
165 stub は Context が持つ DataGear のポインタ data に対して enum を用いてアクセスしている。
166 現在、この stub は全ての CodeGear に対してユーザが1つずつ定義する必要がある。
167 この作業は非常に煩雑であり、CodeGear の定義から生成するスクリプトを用いて定義の簡易化を行なっているが、コンパイラ側でのサポートは入っていない。
168 この stub を型情報から自動生成するために Continuation based C における型システムを定義する必要がある。
169
170 \lstinputlisting[label=src:stub, caption=GearsOS における stub Meta CodeSegment] {src/stub.cbc}
163 171
164 % }}} 172 % }}}
165 173
166
167 \section{メタ計算ライブラリ akasha を用いた赤黒木の実装の検証} 174 \section{メタ計算ライブラリ akasha を用いた赤黒木の実装の検証}
168 175