# HG changeset patch # User mir3636 # Date 1486985386 -32400 # Node ID a2e61c11df3ccd1c80de3172d22a22adc1901759 # Parent 6d00f6c9bb8a4ca4a263a78d52b0354bfe8a9a05 update diff -r 6d00f6c9bb8a -r a2e61c11df3c final_main/chapter3.tex --- a/final_main/chapter3.tex Mon Feb 13 16:28:35 2017 +0900 +++ b/final_main/chapter3.tex Mon Feb 13 20:29:46 2017 +0900 @@ -68,17 +68,12 @@ \section{stub Code Gear} Gears OS では Code Gear は Meta Code Gear に継続し、その後 Code Gear に継続すると述べたが、正確には Meta Code Gear から Code Gear に継続する際に stub Code Gear を挟む。 -stub Code Gear では、Code Gear が必要とする Data Gear を context から取り出すという処理を行うものである。 +stub Code Gear は、Code Gear が必要とする 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 で継続先を変更する、エラーハンドリングを行うといった使い方ができるようになるだろう。 -\section{CbC による Gears OS の構文サポート} -Gears OS を現在の CbC の機能のみを用いて記述すると Context や Meta Code Gear、Meta Data Gear の記述を行わなくてはならず、これには多くの労力を要する。 -そのため、この記述を助けるために Context や Meta Code Gear、Meta Data Gear を生成するスクリプトを作成した。 - - %\section{TaskQueue} %ActiveTaskQueue と WaitTaskQueue の 2 つの TaskQueue を持つ。 %先頭と末尾の Element へのポインタを持つ Queue を表す Data Gear である。 diff -r 6d00f6c9bb8a -r a2e61c11df3c final_main/chapter5.tex --- a/final_main/chapter5.tex Mon Feb 13 16:28:35 2017 +0900 +++ b/final_main/chapter5.tex Mon Feb 13 20:29:46 2017 +0900 @@ -1,10 +1,170 @@ -\chapter{Context、stub の自動生成} +\chapter{Context、stub Code Segment の自動生成} + +Gears OS では 3 章で述べたように通常の Computation の他に Context や stub などの Meta Computation を記述する必要がある。 +Gears OS を現在の CbC の機能のみを用いて記述すると Context や stub Code Gear の記述を行わなくてはならず、これには多くの労力を要する。 +そのため、この記述を助けるために Context や stub Code Gear を生成するスクリプトを作成した。 + +\section{stub Code Segment の生成} +stub Code Gear は Code Gear 間の継続に挟まれる Code Gear が必要な Data Gear を Context から取り出す処理を行うものである。 +stub Code Gear は Code Gear 毎に記述する必要があり、そのCode Gear の引数を見て取り出す Data Gear を選択する。 +stub Code Gear を 自動生成することによって Code Gear の記述量を約半分にすることができる。 + +stub を生成するために perl スクリプトは指定された cbc ファイルの \_\_code型である Code Gear を取得し、引数から必要な Data Gear を選択する。 +この時既に stub Code Gear が生成されている Code Gear は無視される。 + +生成された stub Code Gear と一緒に cbc ファイル(リスト\ref{stack_cbc})から c ファイル(\ref{stack_c})を出力する。 + +\begin{lstlisting}[frame=lrbt,label=stack_cbc,caption={\footnotesize SingleLinkedStack.cbc}] +#include "../context.h" + +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->get = C_getSingleLinkedStack; + stack->isEmpty = C_isEmptySingleLinkedStack; + stack->clear = C_clearSingleLinkedStack; + return stack; +} + +__code clearSingleLinkedStack(struct SingleLinkedStack* stack,__code next(...)) { + stack->top = NULL; + goto next(...); +} + +__code pushSingleLinkedStack(struct SingleLinkedStack* stack,union Data* data, __code next(...)) { + Element* element = new Element(); + element->next = stack->top; + element->data = data; + stack->top = element; + goto next(...); +} + +__code popSingleLinkedStack(struct SingleLinkedStack* stack, __code next(union Data* data, ...)) { + if (stack->top) { + data = stack->top->data; + stack->top = stack->top->next; + } else { + data = NULL; + } + goto next(data, ...); +} + +__code getSingleLinkedStack(struct SingleLinkedStack* stack, __code next(union Data* data, ...)) { + if (stack->top) + data = stack->top->data; + else + data = NULL; + goto next(data, ...); +} + +__code isEmptySingleLinkedStack(struct SingleLinkedStack* stack, __code next(...), __code whenEmpty(...)) { + if (stack->top) + goto next(...); + else + goto whenEmpty(...); +} +\end{lstlisting} + +\begin{lstlisting}[frame=lrbt,label=stack_c,caption={\footnotesize SingleLinkedStack.c}] +#include "../context.h" -Gears OS では 3 章で述べたように通常の Computation の他に Meta Computation を記述する必要がある。 +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; +} + +__code clearSingleLinkedStack(struct Context *context,struct SingleLinkedStack* stack,enum Code next) { + stack->top = NULL; + goto meta(context, next); +} + +__code clearSingleLinkedStack_stub(struct Context* context) { + SingleLinkedStack* stack = (SingleLinkedStack*)GearImpl(context, Stack, stack); + 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); +} -\section{stub の生成} +__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 の生成} Context は Meta Data Gear に相当し、Code Gear や Data Gear を管理している。 @@ -89,10 +249,8 @@ enum Code clear; enum Code push; enum Code pop; - enum Code pop2; enum Code isEmpty; enum Code get; - enum Code get2; enum Code next; } Stack; // Stack implementations @@ -133,10 +291,8 @@ context->code[C_clearSingleLinkedStack] = clearSingleLinkedStack_stub; context->code[C_exit_code] = exit_code_stub; - context->code[C_get2SingleLinkedStack] = get2SingleLinkedStack_stub; context->code[C_getSingleLinkedStack] = getSingleLinkedStack_stub; context->code[C_isEmptySingleLinkedStack] = isEmptySingleLinkedStack_stub; - context->code[C_pop2SingleLinkedStack] = pop2SingleLinkedStack_stub; context->code[C_popSingleLinkedStack] = popSingleLinkedStack_stub; context->code[C_pushSingleLinkedStack] = pushSingleLinkedStack_stub; context->code[C_stack_test1] = stack_test1_stub; diff -r 6d00f6c9bb8a -r a2e61c11df3c final_main/main.aux --- a/final_main/main.aux Mon Feb 13 16:28:35 2017 +0900 +++ b/final_main/main.aux Mon Feb 13 20:29:46 2017 +0900 @@ -30,8 +30,7 @@ \@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces meta computation}}{7}} \newlabel{fig:metaCS}{{3.1}{7}} \@writefile{toc}{\contentsline {section}{\numberline {3.4}stub Code Gear}{7}} -\@writefile{toc}{\contentsline {section}{\numberline {3.5}CbC による Gears OS の構文サポート}{7}} -\@writefile{toc}{\contentsline {section}{\numberline {3.6}interface の記述}{7}} +\@writefile{toc}{\contentsline {section}{\numberline {3.5}interface の記述}{7}} \newlabel{interface}{{3.1}{7}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.1}stack の interface}{7}} \@writefile{toc}{\contentsline {chapter}{\numberline {第4章}LLVM/clang による CbC の実装}{8}} @@ -48,15 +47,19 @@ \@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 の自動生成}{12}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第5章}Context、stub Code Segment の自動生成}{12}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {5.1}stub の生成}{12}} -\@writefile{toc}{\contentsline {section}{\numberline {5.2}Context の生成}{12}} -\newlabel{context}{{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 context の定義}{12}} -\newlabel{init_context}{{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 生成された context}{14}} -\@writefile{toc}{\contentsline {chapter}{\numberline {第6章}今後の課題}{16}} +\@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}} +\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}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第6章}今後の課題}{18}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} diff -r 6d00f6c9bb8a -r a2e61c11df3c final_main/main.dvi Binary file final_main/main.dvi has changed diff -r 6d00f6c9bb8a -r a2e61c11df3c final_main/main.log --- a/final_main/main.log Mon Feb 13 16:28:35 2017 +0900 +++ b/final_main/main.log Mon Feb 13 20:29:46 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) 13 FEB 2017 16:27 +This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.2.4) 13 FEB 2017 20:28 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -213,17 +213,17 @@ 第 5 章 [12 -] [13] [14]) (./chapter6.tex [15] +] [13] [14] [15] [16]) (./chapter6.tex [17] 第 6 章 -) (./bibliography.tex [16 +) (./bibliography.tex [18 ] LaTeX Warning: Empty `thebibliography' environment on input line 11. -) (./thanks.tex [17 +) (./thanks.tex [19 -]) [18 +]) [20 ] (./main.aux) @@ -231,12 +231,12 @@ ) Here is how much of TeX's memory you used: - 2533 strings out of 493683 - 34753 string characters out of 6149654 - 298243 words of memory out of 5000000 - 6077 multiletter control sequences out of 15000+600000 + 2545 strings out of 493683 + 34959 string characters out of 6149654 + 339243 words of memory out of 5000000 + 6089 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,1689s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on main.dvi (22 pages, 72576 bytes). +Output written on main.dvi (24 pages, 95804 bytes). diff -r 6d00f6c9bb8a -r a2e61c11df3c final_main/main.lol --- a/final_main/main.lol Mon Feb 13 16:28:35 2017 +0900 +++ b/final_main/main.lol Mon Feb 13 20:29:46 2017 +0900 @@ -4,5 +4,7 @@ \contentsline {lstlisting}{\numberline {3.1}stack の interface}{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 context の定義}{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 生成された context}{14} +\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 {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} diff -r 6d00f6c9bb8a -r a2e61c11df3c final_main/main.pdf Binary file final_main/main.pdf has changed diff -r 6d00f6c9bb8a -r a2e61c11df3c final_main/main.toc --- a/final_main/main.toc Mon Feb 13 16:28:35 2017 +0900 +++ b/final_main/main.toc Mon Feb 13 20:29:46 2017 +0900 @@ -8,14 +8,13 @@ \contentsline {section}{\numberline {3.2}Context}{6} \contentsline {section}{\numberline {3.3}Meta Code Gear}{6} \contentsline {section}{\numberline {3.4}stub Code Gear}{7} -\contentsline {section}{\numberline {3.5}CbC による Gears OS の構文サポート}{7} -\contentsline {section}{\numberline {3.6}interface の記述}{7} +\contentsline {section}{\numberline {3.5}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 の自動生成}{12} -\contentsline {section}{\numberline {5.1}stub の生成}{12} -\contentsline {section}{\numberline {5.2}Context の生成}{12} -\contentsline {chapter}{\numberline {第6章}今後の課題}{16} +\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 {chapter}{\numberline {第6章}今後の課題}{18}