Mercurial > hg > Papers > 2017 > mitsuki-thesis
changeset 24:37f6991465b0
update
author | mir3636 |
---|---|
date | Thu, 16 Feb 2017 08:03:49 +0900 |
parents | c8bfa1f18b9e |
children | 327435666caa |
files | final_main/chapter3.tex presen/slide.html presen/slide.md |
diffstat | 3 files changed, 41 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/final_main/chapter3.tex Thu Feb 16 07:29:34 2017 +0900 +++ b/final_main/chapter3.tex Thu Feb 16 08:03:49 2017 +0900 @@ -39,7 +39,7 @@ \section{interface の記述} -interface を記述することで Context から Code Gear が呼び出せるようになった。 +interface を記述することで Context を通して Code Gear が参照できるようになった。 create は関数呼び出しで呼び出され、interface と impliment の初期化と Code Gear のポインタの設定を行う。 return で interface を返し、その先で指定した Code Gear へ継続できるようになる。
--- a/presen/slide.html Thu Feb 16 07:29:34 2017 +0900 +++ b/presen/slide.html Thu Feb 16 08:03:49 2017 +0900 @@ -87,7 +87,7 @@ <!-- === begin markdown block === generated by markdown/1.2.0 on Ruby 2.2.0 (2014-12-25) [x86_64-darwin13] - on 2017-02-16 07:29:20 +0900 with Markdown engine kramdown (1.9.0) + on 2017-02-16 08:03:24 +0900 with Markdown engine kramdown (1.9.0) using options {} --> @@ -204,6 +204,25 @@ goto clearSingleLinkedStack(context, stack, next); } </code></pre> +<p lang="impl"># interface の記述 +- interface を記述することで Context を通して Code Gear が参照できるようになった。 +- create は関数呼び出しで呼び出され、interface と impliment の初期化と Code Gear のポインタの設定を行う。 +- return で interface を返し、その先で指定した Code Gear へ継続できるようになる。</p> +<pre><code>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; +} +</code></pre> </div>
--- a/presen/slide.md Thu Feb 16 07:29:34 2017 +0900 +++ b/presen/slide.md Thu Feb 16 08:03:49 2017 +0900 @@ -80,6 +80,26 @@ goto clearSingleLinkedStack(context, stack, next); } ``` +# interface の記述 +- interface を記述することで Context を通して Code Gear が参照できるようになった。 +- create は関数呼び出しで呼び出され、interface と impliment の初期化と Code Gear のポインタの設定を行う。 +- return で interface を返し、その先で指定した Code Gear へ継続できるようになる。 +```impl +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; +} +``` # Context、stub Code Segment の自動生成 - Gears OS では通常の計算の他に Context や stub などの meta computation を記述する必要がある。