# HG changeset patch # User mir3636 # Date 1487077373 -32400 # Node ID 10c4d21cc7f4b38f707c77c410b91daad24580f9 # Parent 5b368e14bb64f45e475c1eb2538ef293f905c21c update diff -r 5b368e14bb64 -r 10c4d21cc7f4 final_main/chapter3.tex --- a/final_main/chapter3.tex Tue Feb 14 18:48:26 2017 +0900 +++ b/final_main/chapter3.tex Tue Feb 14 22:02:53 2017 +0900 @@ -12,39 +12,71 @@ CbC は Code Gear を処理の単位として用いたプログラミング言語であるため、Gears OS の Code Gear を記述するのに適している。 -%\section{Gears OS の構成} - -%\begin{itemize} -% \item Context -% \item TaskQueue -% \item TaskManager -% \item Persistent Data Tree -% \item Worker -%\end{itemize} +図\ref{fig:gearsos} に Gears OS の構成図を示す。 -%図\ref{fig:gearsos} に Gears OS の構成図を示す。 - -%\begin{figure}[htpb] -% \begin{center} -% \scalebox{0.2}{\includegraphics{fig/gearsos.pdf}} -% \end{center} -% \caption{Gears OS の構成図} -% \label{fig:gearsos} -%\end{figure} +\begin{figure}[htpb] + \begin{center} + \scalebox{0.2}{\includegraphics{fig/gearsos.pdf}} + \end{center} + \caption{Gears OS の構成図} + \label{fig:gearsos} +\end{figure} \section{Context} Gears OS では Context と呼ばれる接続可能な Code/Data Gear のリスト、TaskQueue へのポインタ、Persistent Data Tree へのポインタ、Temporal Data Gear のためのメモリ空間等を持っている Meta Data Gear である。 Gears OS は必要な Code/Data Gear に参照したい場合、この Context を通す必要がある。 -%メインとなる Context と Worker 用の Context があり、TaskQueue と Persistent Data Tree は共有される。 -%Temporal Data Gear のためのメモリ空間は Context 毎に異なり、互いに干渉することはできない。 -%Persistent Data Tree への書き込みのみで相互作用を発生させ目的の処理を達成する。 - +メインとなる Context と Worker 用の Context があり、TaskQueue と Persistent Data Tree は共有される。 +Temporal Data Gear のためのメモリ空間は Context 毎に異なり、互いに干渉することはできない。 +Persistent Data Tree への書き込みのみで相互作用を発生させ目的の処理を達成する。 + %現在 CbC で Gears OS を記述すると通常の Computation に加えて Meta Computation である stub を記述する必要がある。 %Meta Computation %Context や stub は Meta Computation であるため。 + +\section{interface の記述} + +interface を記述することで Context から Code Gear が呼び出せるようになった。 +create は関数呼び出しで呼び出され、interface と impliment の初期化と Code Gear のポインタの設定を行う。 +return で interface を返し、その先で interface で指定した Code Gear へ継続できるようになった。 + +\begin{lstlisting}[frame=lrbt,label=interface,caption={interface}] +typedef struct Stack{ + union Data* stack; + union Data* data; + union Data* data1; + __code whenEmpty(...); + __code clear(Impl* stack,__code next(...)); + __code push(Impl* stack,union Data* data, __code next(...)); + __code pop(Impl* stack, __code next(union Data*, ...)); + __code pop2(Impl* stack, union Data** data, union Data** data1, __code next(union Data**, union Data**, ...)); + __code isEmpty(Impl* stack, __code next(...), __code whenEmpty(...)); + __code get(Impl* stack, union Data** data, __code next(...)); + __code get2(Impl* stack,..., __code next(...)); + __code next(...); +} Stack; +\end{lstlisting} + +\begin{lstlisting}[frame=lrbt,label=create,caption={createSingleLinkedStack}] +Stack* createSingleLinkedStack(struct Context* context) { + struct Stack* stack = new Stack(); + struct SingleLinkedStack* singleLinkedStack = new SingleLinkedStack(); + stack->stack = (union Data*)singleLinkedStack; + singleLinkedStack->top = NULL; + stack->push = C_pushSingleLinkedStack; + stack->pop = C_popSingleLinkedStack; + stack->pop2 = C_pop2SingleLinkedStack; + stack->get = C_getSingleLinkedStack; + stack->get2 = C_get2SingleLinkedStack; + stack->isEmpty = C_isEmptySingleLinkedStack; + stack->clear = C_clearSingleLinkedStack; + return stack; +} +\end{lstlisting} + + \section{stub Code Gear} Code Gear が必要とする Data Gear を取り出す際に Context を通す必要がある。 しかし、Context を直接扱うのはセキュリティ上好ましくない。 @@ -53,7 +85,6 @@ 必要とする Data Gear を Context から取り出すという処理を行うものである。 stub Code Gear は Code Gear 毎に生成される。 - %この機能により、CbC は Code Gear のみでなく Data Gear を単位として用いることが可能になった。 %Meta Code Gear、Meta Data Gear により meta computation を通常の Code Gear 内に記述せずにすむ、Code Gear 間に実行される Meta Code Gear で継続先を変更する、エラーハンドリングを行うといった使い方ができるようになるだろう。 @@ -78,51 +109,3 @@ %Task の処理に必要なデータは Persistent Data Tree から取得する。 %処理後、必要なデータを Persistent Data Tree に書き出して再び Task の取得・実行を行う。 % -\section{interface の記述} - -interface を記述することで Context から Code Gear が呼び出せるようになった。 -create は関数呼び出しで呼び出され、interface と impliment の初期化と Code Gear のポインタの設定を行う。 -return で interface を返し、その先で interface で指定した Code Gear へ継続できるようになった。 - -%interface の実装で関数呼び出しせずに使えるようになった -%impliment の型は interface -%create(impl)? -%create で interface と impliment の初期化を行ってる - -%api -%impliment - -\begin{lstlisting}[frame=lrbt,label=interface,caption={interface}] -typedef struct Stack{ - union Data* stack; - union Data* data; - union Data* data1; - __code whenEmpty(...); - __code clear(Impl* stack,__code next(...)); - __code push(Impl* stack,union Data* data, __code next(...)); - __code pop(Impl* stack, __code next(union Data*, ...)); - __code pop2(Impl* stack, union Data** data, union Data** data1, __code next(union Data**, union Data**, ...)); - __code isEmpty(Impl* stack, __code next(...), __code whenEmpty(...)); - __code get(Impl* stack, union Data** data, __code next(...)); - __code get2(Impl* stack,..., __code next(...)); - __code next(...); -} Stack; -\end{lstlisting} - -\begin{lstlisting}[frame=lrbt,label=create,caption={createSingleLinkedStack}] -Stack* createSingleLinkedStack(struct Context* context) { - struct Stack* stack = new Stack(); - struct SingleLinkedStack* singleLinkedStack = new SingleLinkedStack(); - stack->stack = (union Data*)singleLinkedStack; - singleLinkedStack->top = NULL; - stack->push = C_pushSingleLinkedStack; - stack->pop = C_popSingleLinkedStack; - stack->pop2 = C_pop2SingleLinkedStack; - stack->get = C_getSingleLinkedStack; - stack->get2 = C_get2SingleLinkedStack; - stack->isEmpty = C_isEmptySingleLinkedStack; - stack->clear = C_clearSingleLinkedStack; - return stack; -} -\end{lstlisting} - diff -r 5b368e14bb64 -r 10c4d21cc7f4 final_main/chapter5.tex --- a/final_main/chapter5.tex Tue Feb 14 18:48:26 2017 +0900 +++ b/final_main/chapter5.tex Tue Feb 14 22:02:53 2017 +0900 @@ -70,24 +70,7 @@ } \end{lstlisting} -\begin{lstlisting}[frame=lrbt,label=stack_c,caption={\footnotesize SingleLinkedStack.c}] -#include "../context.h" - -Stack* createSingleLinkedStack(struct Context* context) { - struct Stack* stack = &ALLOCATE(context, Stack)->Stack; - struct SingleLinkedStack* singleLinkedStack = &ALLOCATE(context, SingleLinkedStack)->SingleLinkedStack; - stack->stack = (union Data*)singleLinkedStack; - singleLinkedStack->top = NULL; - stack->push = C_pushSingleLinkedStack; - stack->pop = C_popSingleLinkedStack; - stack->pop2 = C_pop2SingleLinkedStack; - stack->get = C_getSingleLinkedStack; - stack->get2 = C_get2SingleLinkedStack; - stack->isEmpty = C_isEmptySingleLinkedStack; - stack->clear = C_clearSingleLinkedStack; - return stack; -} - +\begin{lstlisting}[frame=lrbt,label=stack_c,caption={\footnotesize 生成される stub}] __code clearSingleLinkedStack(struct Context *context,struct SingleLinkedStack* stack,enum Code next) { stack->top = NULL; goto meta(context, next); @@ -98,73 +81,6 @@ enum Code next = Gearef(context, Stack)->next; goto clearSingleLinkedStack(context, stack, next); } - -__code pushSingleLinkedStack(struct Context *context,struct SingleLinkedStack* stack,union Data* data, enum Code next) { - Element* element = &ALLOCATE(context, Element)->Element; - element->next = stack->top; - element->data = data; - stack->top = element; - goto meta(context, next); -} - -__code pushSingleLinkedStack_stub(struct Context* context) { - SingleLinkedStack* stack = (SingleLinkedStack*)GearImpl(context, Stack, stack); - Data* data = Gearef(context, Stack)->data; - enum Code next = Gearef(context, Stack)->next; - goto pushSingleLinkedStack(context, stack, data, next); -} - -__code popSingleLinkedStack(struct Context *context,struct SingleLinkedStack* stack, enum Code next,union Data **O_data) { - Data* data; - if (stack->top) { - data = stack->top->data; - stack->top = stack->top->next; - } else { - data = NULL; - } - *O_data = data; - goto meta(context, next); -} - -__code popSingleLinkedStack_stub(struct Context* context) { - SingleLinkedStack* stack = (SingleLinkedStack*)GearImpl(context, Stack, stack); - enum Code next = Gearef(context, Stack)->next; - Data** O_data = &Gearef(context, Stack)->data; - goto popSingleLinkedStack(context, stack, next, O_data); -} - -__code getSingleLinkedStack(struct Context *context,struct SingleLinkedStack* stack, enum Code next,union Data **O_data) { - Data* data; - if (stack->top) - data = stack->top->data; - else - data = NULL; - *O_data = data; - goto meta(context, next); -} - -__code getSingleLinkedStack_stub(struct Context* context) { - SingleLinkedStack* stack = (SingleLinkedStack*)GearImpl(context, Stack, stack); - enum Code next = Gearef(context, Stack)->next; - Data** O_data = &Gearef(context, Stack)->data; - goto getSingleLinkedStack(context, stack, next, O_data); -} - -__code isEmptySingleLinkedStack(struct Context *context,struct SingleLinkedStack* stack, enum Code next, enum Code whenEmpty) { - if (stack->top) - goto meta(context, next); - else - goto meta(context, whenEmpty); -} - - -__code isEmptySingleLinkedStack_stub(struct Context* context) { - SingleLinkedStack* stack = (SingleLinkedStack*)GearImpl(context, Stack, stack); - enum Code next = Gearef(context, Stack)->next; - enum Code whenEmpty = Gearef(context, Stack)->whenEmpty; - goto isEmptySingleLinkedStack(context, stack, next, whenEmpty); -} - \end{lstlisting} \section{Context の生成} diff -r 5b368e14bb64 -r 10c4d21cc7f4 final_main/main.aux --- a/final_main/main.aux Tue Feb 14 18:48:26 2017 +0900 +++ b/final_main/main.aux Tue Feb 14 22:02:53 2017 +0900 @@ -27,42 +27,44 @@ \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {3.1}Gears OS}{6}} -\@writefile{toc}{\contentsline {section}{\numberline {3.2}Context}{6}} -\@writefile{toc}{\contentsline {section}{\numberline {3.3}stub Code Gear}{6}} -\@writefile{toc}{\contentsline {section}{\numberline {3.4}interface の記述}{7}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Gears OS の構成図}}{6}} +\newlabel{fig:gearsos}{{3.1}{6}} +\@writefile{toc}{\contentsline {section}{\numberline {3.2}Context}{7}} +\@writefile{toc}{\contentsline {section}{\numberline {3.3}interface の記述}{7}} \newlabel{interface}{{3.1}{7}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.1}interface}{7}} \newlabel{create}{{3.2}{7}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.2}createSingleLinkedStack}{7}} -\@writefile{toc}{\contentsline {chapter}{\numberline {第4章}LLVM/clang による CbC の実装}{8}} +\@writefile{toc}{\contentsline {section}{\numberline {3.4}stub Code Gear}{8}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第4章}LLVM/clang による CbC の実装}{9}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {4.1}LLVM clang}{8}} -\@writefile{toc}{\contentsline {section}{\numberline {4.2}clang の基本構造}{8}} -\newlabel{sec:clang}{{4.2}{8}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces clang の 処理過程}}{9}} -\newlabel{fig:clangProcess}{{4.1}{9}} -\@writefile{toc}{\contentsline {section}{\numberline {4.3}LLVM の基本構造}{9}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces LLVM の 処理過程}}{10}} -\newlabel{fig:llvmProcess}{{4.2}{10}} -\@writefile{toc}{\contentsline {section}{\numberline {4.4}LLVM/clang のデバッグ}{10}} -\newlabel{ir_a}{{4.1}{10}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {4.1}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip LLVM IR コード 修正前}{10}} -\newlabel{ir_b}{{4.2}{11}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {4.2}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip LLVM IR コード 修正後}{11}} -\@writefile{toc}{\contentsline {chapter}{\numberline {第5章}Context、stub Code Segment の自動生成}{12}} +\@writefile{toc}{\contentsline {section}{\numberline {4.1}LLVM clang}{9}} +\@writefile{toc}{\contentsline {section}{\numberline {4.2}clang の基本構造}{9}} +\newlabel{sec:clang}{{4.2}{9}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces clang の 処理過程}}{10}} +\newlabel{fig:clangProcess}{{4.1}{10}} +\@writefile{toc}{\contentsline {section}{\numberline {4.3}LLVM の基本構造}{10}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces LLVM の 処理過程}}{11}} +\newlabel{fig:llvmProcess}{{4.2}{11}} +\@writefile{toc}{\contentsline {section}{\numberline {4.4}LLVM/clang のデバッグ}{11}} +\newlabel{ir_a}{{4.1}{11}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {4.1}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip LLVM IR コード 修正前}{11}} +\newlabel{ir_b}{{4.2}{12}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {4.2}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip LLVM IR コード 修正後}{12}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第5章}Context、stub Code Segment の自動生成}{13}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {5.1}stub Code Segment の生成}{12}} -\newlabel{stack_cbc}{{5.1}{12}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {5.1}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip SingleLinkedStack.cbc}{12}} -\newlabel{stack_c}{{5.2}{13}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {5.2}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip SingleLinkedStack.c}{13}} -\@writefile{toc}{\contentsline {section}{\numberline {5.2}Context の生成}{15}} +\@writefile{toc}{\contentsline {section}{\numberline {5.1}stub Code Segment の生成}{13}} +\newlabel{stack_cbc}{{5.1}{13}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {5.1}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip SingleLinkedStack.cbc}{13}} +\newlabel{stack_c}{{5.2}{14}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {5.2}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip 生成される stub}{14}} +\@writefile{toc}{\contentsline {section}{\numberline {5.2}Context の生成}{14}} \newlabel{context}{{5.3}{15}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {5.3}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip context の定義}{15}} -\newlabel{init_context}{{5.4}{17}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {5.4}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip 生成された context}{17}} +\newlabel{init_context}{{5.4}{16}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {5.4}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip 生成された context}{16}} \@writefile{toc}{\contentsline {chapter}{\numberline {第6章}今後の課題}{18}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} diff -r 5b368e14bb64 -r 10c4d21cc7f4 final_main/main.dvi Binary file final_main/main.dvi has changed diff -r 5b368e14bb64 -r 10c4d21cc7f4 final_main/main.lof --- a/final_main/main.lof Tue Feb 14 18:48:26 2017 +0900 +++ b/final_main/main.lof Tue Feb 14 22:02:53 2017 +0900 @@ -5,8 +5,9 @@ \contentsline {figure}{\numberline {2.3}{\ignorespaces 階乗を求める CbC プログラムの軽量継続図}}{4} \contentsline {figure}{\numberline {2.4}{\ignorespaces 環境付き継続}}{5} \addvspace {10\p@ } +\contentsline {figure}{\numberline {3.1}{\ignorespaces Gears OS の構成図}}{6} \addvspace {10\p@ } -\contentsline {figure}{\numberline {4.1}{\ignorespaces clang の 処理過程}}{9} -\contentsline {figure}{\numberline {4.2}{\ignorespaces LLVM の 処理過程}}{10} +\contentsline {figure}{\numberline {4.1}{\ignorespaces clang の 処理過程}}{10} +\contentsline {figure}{\numberline {4.2}{\ignorespaces LLVM の 処理過程}}{11} \addvspace {10\p@ } \addvspace {10\p@ } diff -r 5b368e14bb64 -r 10c4d21cc7f4 final_main/main.log --- a/final_main/main.log Tue Feb 14 18:48:26 2017 +0900 +++ b/final_main/main.log Tue Feb 14 22:02:53 2017 +0900 @@ -1,4 +1,4 @@ -This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.2.4) 14 FEB 2017 18:46 +This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.2.4) 14 FEB 2017 21:33 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -196,26 +196,27 @@ File: fig/gotowithenv.pdf Graphic file (type pdf) [4]) (./chapter3.tex [5] 第 3 章 -[6 +File: fig/gearsos.pdf Graphic file (type pdf) + [6 -]) (./chapter4.tex [7] +] [7]) (./chapter4.tex [8] 第 4 章 -[8 +[9 ] File: fig/clangProcess.pdf Graphic file (type pdf) - [9] + [10] File: fig/llvmProcess.pdf Graphic file (type pdf) Overfull \hbox (19.03606pt too wide) in paragraph at lines 78--79 [] [] -[10]) (./chapter5.tex [11] +[11]) (./chapter5.tex [12] 第 5 章 -[12 +[13 -] [13] [14] [15] [16]) (./chapter6.tex [17] +] [14] [15] [16]) (./chapter6.tex [17] 第 6 章 ) (./bibliography.tex [18 @@ -233,12 +234,12 @@ ) Here is how much of TeX's memory you used: - 2553 strings out of 493683 - 35101 string characters out of 6149654 + 2555 strings out of 493683 + 35151 string characters out of 6149654 377243 words of memory out of 5000000 - 6096 multiletter control sequences out of 15000+600000 + 6097 multiletter control sequences out of 15000+600000 14691 words of font info for 58 fonts, out of 8000000 for 9000 929 hyphenation exceptions out of 8191 26i,5n,49p,564b,1677s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on main.dvi (24 pages, 100464 bytes). +Output written on main.dvi (24 pages, 88872 bytes). diff -r 5b368e14bb64 -r 10c4d21cc7f4 final_main/main.lol --- a/final_main/main.lol Tue Feb 14 18:48:26 2017 +0900 +++ b/final_main/main.lol Tue Feb 14 22:02:53 2017 +0900 @@ -3,9 +3,9 @@ \contentsline {lstlisting}{\numberline {2.3}環境付き継続}{4} \contentsline {lstlisting}{\numberline {3.1}interface}{7} \contentsline {lstlisting}{\numberline {3.2}createSingleLinkedStack}{7} -\contentsline {lstlisting}{\numberline {4.1}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip LLVM IR コード 修正前}{10} -\contentsline {lstlisting}{\numberline {4.2}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip LLVM IR コード 修正後}{11} -\contentsline {lstlisting}{\numberline {5.1}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip SingleLinkedStack.cbc}{12} -\contentsline {lstlisting}{\numberline {5.2}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip SingleLinkedStack.c}{13} +\contentsline {lstlisting}{\numberline {4.1}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip LLVM IR コード 修正前}{11} +\contentsline {lstlisting}{\numberline {4.2}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip LLVM IR コード 修正後}{12} +\contentsline {lstlisting}{\numberline {5.1}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip SingleLinkedStack.cbc}{13} +\contentsline {lstlisting}{\numberline {5.2}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip 生成される stub}{14} \contentsline {lstlisting}{\numberline {5.3}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip context の定義}{15} -\contentsline {lstlisting}{\numberline {5.4}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip 生成された context}{17} +\contentsline {lstlisting}{\numberline {5.4}\relax \fontsize {10}{12}\selectfont \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def \leftmargin \leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@ {\leftmargin \leftmargini \topsep 6\p@ plus2\p@ minus2\p@ \parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep }\belowdisplayskip \abovedisplayskip 生成された context}{16} diff -r 5b368e14bb64 -r 10c4d21cc7f4 final_main/main.pdf Binary file final_main/main.pdf has changed diff -r 5b368e14bb64 -r 10c4d21cc7f4 final_main/main.toc --- a/final_main/main.toc Tue Feb 14 18:48:26 2017 +0900 +++ b/final_main/main.toc Tue Feb 14 22:02:53 2017 +0900 @@ -5,15 +5,15 @@ \contentsline {section}{\numberline {2.3}環境付き継続}{4} \contentsline {chapter}{\numberline {第3章}Gears OS}{6} \contentsline {section}{\numberline {3.1}Gears OS}{6} -\contentsline {section}{\numberline {3.2}Context}{6} -\contentsline {section}{\numberline {3.3}stub Code Gear}{6} -\contentsline {section}{\numberline {3.4}interface の記述}{7} -\contentsline {chapter}{\numberline {第4章}LLVM/clang による CbC の実装}{8} -\contentsline {section}{\numberline {4.1}LLVM clang}{8} -\contentsline {section}{\numberline {4.2}clang の基本構造}{8} -\contentsline {section}{\numberline {4.3}LLVM の基本構造}{9} -\contentsline {section}{\numberline {4.4}LLVM/clang のデバッグ}{10} -\contentsline {chapter}{\numberline {第5章}Context、stub Code Segment の自動生成}{12} -\contentsline {section}{\numberline {5.1}stub Code Segment の生成}{12} -\contentsline {section}{\numberline {5.2}Context の生成}{15} +\contentsline {section}{\numberline {3.2}Context}{7} +\contentsline {section}{\numberline {3.3}interface の記述}{7} +\contentsline {section}{\numberline {3.4}stub Code Gear}{8} +\contentsline {chapter}{\numberline {第4章}LLVM/clang による CbC の実装}{9} +\contentsline {section}{\numberline {4.1}LLVM clang}{9} +\contentsline {section}{\numberline {4.2}clang の基本構造}{9} +\contentsline {section}{\numberline {4.3}LLVM の基本構造}{10} +\contentsline {section}{\numberline {4.4}LLVM/clang のデバッグ}{11} +\contentsline {chapter}{\numberline {第5章}Context、stub Code Segment の自動生成}{13} +\contentsline {section}{\numberline {5.1}stub Code Segment の生成}{13} +\contentsline {section}{\numberline {5.2}Context の生成}{14} \contentsline {chapter}{\numberline {第6章}今後の課題}{18}