diff paper/chapter/02-cbc.tex @ 60:1ce43db7c038

update
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Tue, 02 Feb 2021 18:47:49 +0900
parents b1e2bcdd5191
children 45395005373f
line wrap: on
line diff
--- a/paper/chapter/02-cbc.tex	Tue Feb 02 17:18:59 2021 +0900
+++ b/paper/chapter/02-cbc.tex	Tue Feb 02 18:47:49 2021 +0900
@@ -23,14 +23,13 @@
 これは呼び出し元の関数を次のCodeGearの継続対象として設定するものである。
 これはGCCでは内部コードを生成を行う。
 LLVM/clangでは\texttt{setjmp}と\texttt{longjmp}を使い実装している。
-したがってプログラマから見ると、通常のCの関数呼び出しの返り値をCodeGearから取得する事が可能となる。
+環境付きgotoを使うと、通常のCの関数呼び出しの返り値をCodeGearから取得する事が可能となる。
 
-\section{DataGearとMetaDataGear}
+\section{DataGear}
 DataGearはCbCでのデータの単位である。
-基本はC言語の構造体そのものであるが、 DataGearの場合はデータに付随するメタ情報も取り扱う。
-これはデータ自身がどういう型を持っているかなどの情報である。
-ほかに計算を実行するCPU、 GPUの情報や、 計算に必要なすべてのDataGearの管理などの実行環境のメタデータもDataGearの形で表現される。
-このメタデータを扱うDataGearをMetaDataGearと呼ぶ。
+CbC上では構造体の形で表現される。
+各CodeGearの入力として受けるDataGearをInputDataGearと呼ぶ。
+逆に次の継続に渡すDataGearをOutputDataGearと呼ぶ。
 
 
 \section{CbCを使ったシステムコールディスパッチの例題}
@@ -56,6 +55,7 @@
 CbCでのメタ計算はCodeGear、 DataGearの単位がそのまま使用できる。
 メタ計算で使われるこれらの単位はそれぞれ、 MetaCodeGear、 MetaDataGearと呼ばれる。
 
+
 \section{MetaCodeGear}
 
 GearsOSでは、 CodeGearとDataGearを元にプログラミングを行う。
@@ -79,3 +79,7 @@
 これは図\ref{meta-cg-dg}の下段に対応する。
 
 \section{MetaDataGear}
+基本はC言語の構造体そのものであるが、 DataGearの場合はデータに付随するメタ情報も取り扱う。
+これはデータ自身がどういう型を持っているかなどの情報である。
+ほかに計算を実行するCPU、 GPUの情報や、 計算に必要なすべてのDataGearの管理などの実行環境のメタデータもDataGearの形で表現される。
+このメタデータを扱うDataGearをMetaDataGearと呼ぶ。
\ No newline at end of file