# HG changeset patch # User mir3636 # Date 1516354436 -32400 # Node ID 39f38ed9c7a26f0fc7b358b07d684caa32d433c3 # Parent 8edb996bce462539aecb9b989dea2a6e23afd723 fix diff -r 8edb996bce46 -r 39f38ed9c7a2 Paper/pic/generate_context.pdf Binary file Paper/pic/generate_context.pdf has changed diff -r 8edb996bce46 -r 39f38ed9c7a2 Paper/pic/generate_context3.pdf Binary file Paper/pic/generate_context3.pdf has changed diff -r 8edb996bce46 -r 39f38ed9c7a2 Paper/pic/generate_context_2.graffle Binary file Paper/pic/generate_context_2.graffle has changed diff -r 8edb996bce46 -r 39f38ed9c7a2 Slide/fig/Gearef.graffle Binary file Slide/fig/Gearef.graffle has changed diff -r 8edb996bce46 -r 39f38ed9c7a2 Slide/fig/Gearef.pdf Binary file Slide/fig/Gearef.pdf has changed diff -r 8edb996bce46 -r 39f38ed9c7a2 Slide/fig/generate_context.graffle Binary file Slide/fig/generate_context.graffle has changed diff -r 8edb996bce46 -r 39f38ed9c7a2 Slide/fig/generate_context.pdf Binary file Slide/fig/generate_context.pdf has changed diff -r 8edb996bce46 -r 39f38ed9c7a2 Slide/fig/generate_context3.pdf Binary file Slide/fig/generate_context3.pdf has changed diff -r 8edb996bce46 -r 39f38ed9c7a2 Slide/fig/generate_stub.graffle Binary file Slide/fig/generate_stub.graffle has changed diff -r 8edb996bce46 -r 39f38ed9c7a2 Slide/fig/generate_stub.pdf Binary file Slide/fig/generate_stub.pdf has changed diff -r 8edb996bce46 -r 39f38ed9c7a2 Slide/prosym.html --- 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 @@ @@ -295,11 +295,10 @@
Stack* createSingleLinkedStack(struct Context* context) {
+Stack* createSingleLinkedStack(struct Context* context) {
struct Stack* stack = new Stack();
struct SingleLinkedStack* singleLinkedStack = new SingleLinkedStack();
stack->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->next = stack->top;
element->data = data;
@@ -366,6 +364,9 @@
現在の CbC で Gears OS を記述すると、このメタ計算の記述も行わなくてはならず、これには多くの労力を要する。
この記述を助けるために Context を生成する generate_context と stub Code Gear を生成する generate_stub を perl スクリプトで作成した。
+
+
+
@@ -375,9 +376,9 @@
- 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 を加えたファイルを生成する。
__code clearSingleLinkedStack(struct Context *context,struct SingleLinkedStack* stack,enum Code next) {
@@ -400,26 +401,24 @@
- 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 の記述量を約半分にすることができます。
-
+ - generate_context は context.h から Data Gear、generate_stub から生成されたファイルから Code Gear を取得し、以下を生成する。
+
+ - Context が持つ Code/Data Gear のリスト の Code/Data Gear 名とポインタを対応させるための enum の定義を記述した enumCode.h、enumData.h
+ - 取得した Code/Data Gear から Context の生成を行う target-context
+ - Context を生成する際に Data Gear の Allocation を行う dataGearInit.c
+
+
+
+
+
+
-