Mercurial > hg > Papers > 2017 > mitsuki-thesis
comparison final_main/chapter3.tex @ 30:876ee5de1088 default tip
add graffle
author | mir3636 |
---|---|
date | Sun, 14 May 2017 18:47:56 +0900 (2017-05-14) |
parents | 37f6991465b0 |
children |
comparison
equal
deleted
inserted
replaced
29:77e8dfb995b3 | 30:876ee5de1088 |
---|---|
4 Data Gear はデータの単位であり、int や文字列などの Primitive Type を持っている。 | 4 Data Gear はデータの単位であり、int や文字列などの Primitive Type を持っている。 |
5 Code Gear は 任意の数の Input Data Gear を参照して処理を行い、Output Data Gear を出力し処理を終える。 | 5 Code Gear は 任意の数の Input Data Gear を参照して処理を行い、Output Data Gear を出力し処理を終える。 |
6 また、接続された Data Gear 以外には参照を行わない。 | 6 また、接続された Data Gear 以外には参照を行わない。 |
7 処理やデータの構造が Code Gear、Data Gear に閉じているため、これにより実行時間、メモリ使用量などを予測可能なものにすることが可能になる。 | 7 処理やデータの構造が Code Gear、Data Gear に閉じているため、これにより実行時間、メモリ使用量などを予測可能なものにすることが可能になる。 |
8 | 8 |
9 Gears OS では Meta Computation を Meta Code Gear、Meta Data Gear で表現する。 | 9 Gears OS ではメタ計算を、Meta Code Gear、Meta Data Gear で表現する。 |
10 Meta Code Gear は通常のCode Gear の直後に遷移され、Meta Computation を実行する。 | 10 Meta Code Gear は通常のCode Gear の直後に遷移され、メタ計算を実行する。 |
11 | 11 |
12 CbC は Code Gear を処理の単位として用いたプログラミング言語であるため、Gears OS の Code Gear を記述するのに適している。 | 12 CbC は Code Gear を処理の単位として用いたプログラミング言語であるため、Gears OS の Code Gear を記述するのに適している。 |
13 | 13 |
14 図\ref{fig:gearsos} に Gears OS の構成図を示す。 | 14 図\ref{fig:gearsos} に Gears OS の構成図を示す。 |
15 | 15 |
37 %Context や stub は Meta Computation であるため。 | 37 %Context や stub は Meta Computation であるため。 |
38 | 38 |
39 | 39 |
40 \section{interface の記述} | 40 \section{interface の記述} |
41 | 41 |
42 interface を記述することで Context を通して Code Gear が参照できるようになった。 | 42 interface を記述することでデータ構造のapiと Data Gear を結びつけることが出来、呼び出しが容易になった。 |
43 create は関数呼び出しで呼び出され、interface と impliment の初期化と Code Gear のポインタの設定を行う。 | 43 create は関数呼び出しで呼び出され、interface と impliment の初期化と Code Gear のポインタの設定を行う。 |
44 return で interface を返し、その先で指定した Code Gear へ継続できるようになる。 | 44 return で interface を返し、その先で Code Gear や Data Gear へ継続できるようになる。 |
45 | 45 |
46 \begin{lstlisting}[frame=lrbt,label=interface,caption={interface}] | 46 \begin{lstlisting}[frame=lrbt,label=interface,caption={interface}] |
47 typedef struct Stack<Impl>{ | 47 typedef struct Stack<Impl>{ |
48 union Data* stack; | 48 union Data* stack; |
49 union Data* data; | 49 union Data* data; |