Mercurial > hg > Papers > 2017 > atton-master
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 |