changeset 25:39f38ed9c7a2

fix
author mir3636
date Fri, 19 Jan 2018 18:33:56 +0900
parents 8edb996bce46
children 8a177b87a3f7
files Paper/pic/generate_context.pdf Paper/pic/generate_context3.pdf Paper/pic/generate_context_2.graffle Slide/fig/Gearef.graffle Slide/fig/Gearef.pdf Slide/fig/generate_context.graffle Slide/fig/generate_context.pdf Slide/fig/generate_context3.pdf Slide/fig/generate_stub.graffle Slide/fig/generate_stub.pdf Slide/prosym.html Slide/prosym.md
diffstat 12 files changed, 38 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
Binary file Paper/pic/generate_context.pdf has changed
Binary file Paper/pic/generate_context3.pdf has changed
Binary file Paper/pic/generate_context_2.graffle has changed
Binary file Slide/fig/Gearef.graffle has changed
Binary file Slide/fig/Gearef.pdf has changed
Binary file Slide/fig/generate_context.graffle has changed
Binary file Slide/fig/generate_context.pdf has changed
Binary file Slide/fig/generate_context3.pdf has changed
Binary file Slide/fig/generate_stub.graffle has changed
Binary file Slide/fig/generate_stub.pdf has changed
--- a/Slide/prosym.html	Fri Jan 19 15:06:36 2018 +0900
+++ b/Slide/prosym.html	Fri Jan 19 18:33:56 2018 +0900
@@ -86,7 +86,7 @@
 <!-- === begin markdown block ===
 
       generated by markdown/1.2.0 on Ruby 2.4.0 (2016-12-24) [x86_64-darwin16]
-                on 2018-01-19 14:50:21 +0900 with Markdown engine kramdown (1.13.2)
+                on 2018-01-19 18:24:07 +0900 with Markdown engine kramdown (1.13.2)
                   using options {}
   -->
 
@@ -295,11 +295,10 @@
 <!-- _S9SLIDE_ -->
 <h1 id="interface-1">Interface</h1>
 
-<ul>
-  <li>impliment の例</li>
+<ul lang="impl">
+  <li>implement の例</li>
 </ul>
-
-<pre lang="impl"><code>Stack* createSingleLinkedStack(struct Context* context) {
+<pre><code>Stack* createSingleLinkedStack(struct Context* context) {
     struct Stack* stack = new Stack();
     struct SingleLinkedStack* singleLinkedStack = new SingleLinkedStack();
     stack-&gt;stack = (union Data*)singleLinkedStack;
@@ -314,8 +313,7 @@
     return stack;
 }
 
-__code pushSingleLinkedStack(struct
-    SingleLinkedStack* stack,union Data* data, __code next(...)) {
+__code pushSingleLinkedStack(struct SingleLinkedStack* stack, union Data* data, __code next(...)) {
     Element* element = new Element();
     element-&gt;next = stack-&gt;top;
     element-&gt;data = data;
@@ -366,6 +364,9 @@
   <li>現在の CbC で Gears OS を記述すると、このメタ計算の記述も行わなくてはならず、これには多くの労力を要する。</li>
   <li>この記述を助けるために Context を生成する generate_context と stub Code Gear を生成する generate_stub を perl スクリプトで作成した。</li>
 </ul>
+<div style="text-align: center;">
+ <img src="./fig/generate_context.pdf" alt="generate_context" width="900" />
+</div>
 
 
 </div>
@@ -375,9 +376,9 @@
 <ul>
   <li>stub Code Gear は Code Gear 間の継続に挟まれ、Code Gear が必要な Data Gear を Context から取り出す処理を行うものである。</li>
   <li>stub Code Gear は Code Gear 毎に記述する必要があり、そのCode Gear の引数を見て取り出す Data Gear を選択する。</li>
-  <li>generate_stub は指定された cbc ファイルの __code型である Code Gear を取得。</li>
-  <li>引数と interface を照らし合わせ、Gearef または GearImpl を決定する。</li>
-  <li>cbc ファイルのから、生成した stub Code Gear を加えて、c ファイルを生成する。</li>
+  <li>generate_stub は指定された cbc ファイルの __code で記述された Code Gear を取得。</li>
+  <li>Code Gear の引数と interface を照らし合わせ、Gearef または GearImpl を決定する。</li>
+  <li>cbc ファイルの Code Gear から、生成した stub Code Gear を加えたファイルを生成する。</li>
 </ul>
 
 <pre lang="stub"><code>__code clearSingleLinkedStack(struct Context *context,struct SingleLinkedStack* stack,enum Code next) {
@@ -400,26 +401,24 @@
 
 <ul>
   <li>Context は Meta Data Gear に相当し、Code Gear や Data Gear を管理している。</li>
-  <li>generate_context は context.h から Data Gear、c ファイルから Code Gear を取得。</li>
-  <li>取得した Code/Data Gear の enum の定義は enumCode.h、enumData.h に生成される。</li>
-  <li>Code/Data Gear の名前とポインタの対応は この enum と関数ポインタによって表現される。</li>
-  <li>generate_context は取得した Code/Data Gear から Context の生成を行うコードを生成する。</li>
-  <li>Context には Allocation で生成した Data Gear へのポインタも格納されているが、Data Gear の Allocation を行うコードは dataGearInit.c に生成される。</li>
-  <li>これらを自動生成することで Gears OS の記述量を約半分にすることができます。
-<img src="./fig/generate_context.svg" alt="message" width="800" /></li>
+  <li>generate_context は context.h から Data Gear、generate_stub から生成されたファイルから Code Gear を取得し、以下を生成する。
+    <ul>
+      <li>Context が持つ Code/Data Gear のリスト の Code/Data Gear 名とポインタを対応させるための enum の定義を記述した enumCode.h、enumData.h</li>
+      <li>取得した Code/Data Gear から Context の生成を行う target-context</li>
+      <li>Context を生成する際に Data Gear の Allocation を行う dataGearInit.c</li>
+    </ul>
+  </li>
 </ul>
 
+<div style="text-align: center;">
+ <img src="./fig/generate_context3.pdf" alt="generate_context3" width="900" />
+</div>
+
 
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-2">比較</h1>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="section-3">今後の課題</h1>
+<h1 id="section-2">今後の課題</h1>
 <ul>
   <li>本研究では interface の記述、CbC ファイルから Gears OS の記述に必要な Context と stub の生成を行う perl スクリプトの生成を行なった。</li>
   <li>これにより Gears OS のコードの煩雑さは改善され、ユーザーは Context への接続を意識する必要がなくなった。</li>
--- a/Slide/prosym.md	Fri Jan 19 15:06:36 2018 +0900
+++ b/Slide/prosym.md	Fri Jan 19 18:33:56 2018 +0900
@@ -140,8 +140,7 @@
 
 # Interface
 
-- impliment の例
-
+- implement の例
 ```impl
 Stack* createSingleLinkedStack(struct Context* context) {
     struct Stack* stack = new Stack();
@@ -158,8 +157,7 @@
     return stack;
 }
 
-__code pushSingleLinkedStack(struct
-    SingleLinkedStack* stack,union Data* data, __code next(...)) {
+__code pushSingleLinkedStack(struct SingleLinkedStack* stack, union Data* data, __code next(...)) {
     Element* element = new Element();
     element->next = stack->top;
     element->data = data;
@@ -199,14 +197,17 @@
 - Gears OS ではノーマルレベルの計算の他に Context や stub などのメタ計算を記述する必要がある。
 - 現在の CbC で Gears OS を記述すると、このメタ計算の記述も行わなくてはならず、これには多くの労力を要する。
 - この記述を助けるために Context を生成する generate_context と stub Code Gear を生成する generate_stub を perl スクリプトで作成した。
+<div style="text-align: center;">
+ <img src="./fig/generate_context.pdf" alt="generate_context" width="900">
+</div>
 
 
 # stub Code Gear の生成
 - stub Code Gear は Code Gear 間の継続に挟まれ、Code Gear が必要な Data Gear を Context から取り出す処理を行うものである。
 - stub Code Gear は Code Gear 毎に記述する必要があり、そのCode Gear の引数を見て取り出す Data Gear を選択する。
-- generate_stub は指定された cbc ファイルの __code型である Code Gear を取得。
-- 引数と interface を照らし合わせ、Gearef または GearImpl を決定する。
-- cbc ファイルのから、生成した stub Code Gear を加えて、c ファイルを生成する。
+- generate_stub は指定された cbc ファイルの __code で記述された Code Gear を取得。
+- Code Gear の引数と interface を照らし合わせ、Gearef または GearImpl を決定する。
+- cbc ファイルの Code Gear から、生成した stub Code Gear を加えたファイルを生成する。
 
 ```stub
 __code clearSingleLinkedStack(struct Context *context,struct SingleLinkedStack* stack,enum Code next) {
@@ -224,15 +225,14 @@
 # Context の生成
 
 - Context は Meta Data Gear に相当し、Code Gear や Data Gear を管理している。 
-- generate_context は context.h から Data Gear、c ファイルから Code Gear を取得。
-- 取得した Code/Data Gear の enum の定義は enumCode.h、enumData.h に生成される。
-- Code/Data Gear の名前とポインタの対応は この enum と関数ポインタによって表現される。
-- generate_context は取得した Code/Data Gear から Context の生成を行うコードを生成する。
-- Context には Allocation で生成した Data Gear へのポインタも格納されているが、Data Gear の Allocation を行うコードは dataGearInit.c に生成される。
-- これらを自動生成することで Gears OS の記述量を約半分にすることができます。
-<img src="./fig/generate_context.svg" alt="message" width="800" >
+- generate_context は context.h から Data Gear、generate_stub から生成されたファイルから Code Gear を取得し、以下を生成する。
+    - リストで管理している Code/Data の名前とポインタを対応させるための enumCode.h、enumData.h
+    - 取得した Code/Data Gear から Context の生成を行う target-context
+    - Context を生成する際の Data Gear の Allocation を行う dataGearInit.c
 
-# 比較
+<div style="text-align: center;">
+ <img src="./fig/generate_context3.pdf" alt="generate_context3" width="900">
+</div>
 
 # 今後の課題
 - 本研究では interface の記述、CbC ファイルから Gears OS の記述に必要な Context と stub の生成を行う perl スクリプトの生成を行なった。