Mercurial > hg > Papers > 2022 > pine-thesis
changeset 8:06592642eedc
add figs
author | Takato Matsuoka <t.matsuoka@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 30 Jan 2022 16:03:45 +0900 |
parents | 6129abd42911 |
children | 48187f47422f |
files | paper/figs/codegear.png paper/figs/codegear_debugmeta.png paper/figs/gearsDebuggerArchi.drawio.png paper/figs/pdPhils.png paper/figs/user_input.png paper/text/cbc.tex paper/text/gearsdebugger.tex paper/thesis.pdf |
diffstat | 8 files changed, 16 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/text/cbc.tex Sat Jan 29 20:53:26 2022 +0900 +++ b/paper/text/cbc.tex Sun Jan 30 16:03:45 2022 +0900 @@ -14,9 +14,6 @@ \end{center} \end{figure} -TODO: 簡単なCodeGear遷移の例を作って、記述する。 - - \section{DataGear} CodeGearと同じくCbCにおけるプログラミング単位の一つである。CodeGearから次のCodeGearへの継続の際に、データの受け渡しに用いられるのがDataGearである。 特に、CodeGearからの入力を受け取るDataGearをInputDataGear、CodeGear実行後にCodeGearからの出力を受け取るDataGearをOutputDataGearという。
--- a/paper/text/gearsdebugger.tex Sat Jan 29 20:53:26 2022 +0900 +++ b/paper/text/gearsdebugger.tex Sun Jan 30 16:03:45 2022 +0900 @@ -6,9 +6,15 @@ \subsection{ユーザーインプット機能} ユーザーインプット機能はユーザーが行いたいデバッグ処理を指定するための機能で、プロンプトにより対話形式でデバッグコマンドを入力することでデバッグが可能になった。 -デバッグコマンドは後述するnextやpdコマンドなどが存在する。ソースコード\ref{src:prompt_result}の7行目に(Gears Debugger)があるが、これがユーザーへ入力を促すプロンプトである。 +デバッグコマンドは後述するnextやpdコマンドなどが存在する。図\ref{figs:user_input}に(Gears Debugger)とあるが、これがユーザーへ入力を促すプロンプトである。 -\lstinputlisting[label=src:prompt_result, caption=ユーザーへ入力を促すプロンプト]{src/prompt_result.txt} +\begin{figure}[htbp] + \begin{center} + \includegraphics[width=13cm]{./figs/user_input.png} + \caption{ユーザーへ入力を促すプロンプト} + \label{figs:user_input} + \end{center} +\end{figure} \subsection{CodeGear単位でのデバッグ} GearsOSはCodeGearとDataGearを単位として実行される。そのためデバッグ時においては1つのCodeGearを実行した後の情報を見ることで、そのCodeGearによってどのDataGearがどのように変化したのかを見ることができる。そのため1つのCodeGear実行後にdebugMetaを呼ぶことによりCodeGear単位でのデバッグを実現している。 @@ -16,9 +22,15 @@ \subsection{DataGearの表示} CbCのデータ単位であり、GearsOSの基本単位であるDataGearの表示が可能となった。 -表示する際にはprint DataGearを意味するpdコマンドを入力する。また複数存在するDataGearの指定に対応するため、オプションでDataGear名を指定することで特定のDataGearの表示が出来る。表示の際には全てのDataGearの参照ができるcontextを経由して参照を行う。実際にDPPMCで使用されるDataGearであるPhilsの表示結果をソースコード\ref{src:pd_example}に示す。 +表示する際にはprint DataGearを意味するpdコマンドを入力する。また複数存在するDataGearの指定に対応するため、オプションでDataGear名を指定することで特定のDataGearの表示が出来る。表示の際には全てのDataGearの参照ができるcontextを経由して参照を行う。実際にDPPMCで使用されるDataGearであるPhilsの表示結果を図\ref{figs:pdPhils}に示す。 -\lstinputlisting[label=src:pd_example, caption=pdコマンドを用いたPhilsの表示結果]{src/pd_example.txt} +\begin{figure}[htbp] + \begin{center} + \includegraphics[width=13cm]{./figs/pdPhils.png} + \caption{pdコマンドを用いたPhilsの表示結果} + \label{figs:pdPhils} + \end{center} +\end{figure} \section{DebugWorker} \label{DebugWorker} Debug用のWorkerとしてDebugWorkerの作成を行った。通常のWorkerと異なる部分として、debugMetaの実装が挙げられる。ソースコード\ref{src:debugMeta}がdebugMetaの定義の一部である。ソースコード\ref{src:debugMeta}の1行目の\_\_ncodeは、ユーザーが定義できるMetaCodeGearである。通常のCodeGearの定義はソースコード\ref{src:hello}の1行目のように\_\_codeを用いて定義を行う。この\_\_codeを使った定義の場合はトランスパイラによる変換時にノーマルレベルのCodeGearだと判断され、メタ計算を行うStubCodeGearがトランスパイラによって生成される。しかし\_\_ncodeを使ったCodeGearの定義はトランスパイラによってMetaCodeGearと判断され、Stubの生成などがされない。