# HG changeset patch # User mir3636 # Date 1516315521 -32400 # Node ID bb495c751e408ebcba1ea25905e1db0b9dbad9bc # Parent f83f575b61941b3f5df901105c8cc185c8a9010b fix diff -r f83f575b6194 -r bb495c751e40 Slide/prosym.html --- a/Slide/prosym.html Thu Jan 18 15:51:04 2018 +0900 +++ b/Slide/prosym.html Fri Jan 19 07:45:21 2018 +0900 @@ -86,7 +86,7 @@ @@ -106,21 +106,28 @@ -

# メタ計算の重要性 -- プログラムを記述する際、ノーマルレベルの処理の他に、メモリ管理やスレッド管理、CPU や GPU の資源管理等、記述しなければならない処理が存在する。これらの計算をメタ計算と呼ぶ。 -- メタ計算はノーマルレベルの計算から切り離して記述したい。 -- そのためには処理を細かく分割する必要があるが、関数やクラスなどの単位は容易に分割できない。 -- そこで当研究室ではメタ計算を柔軟に記述するためのプログラミング言語の単位として Code Gear、Data Gear という単位を提案している。

+ + + +
+ +

メタ計算の重要性

+
@@ -188,7 +195,7 @@
- message + MetaGear
@@ -196,17 +203,33 @@

Gears OS の構成

+
-

CbC による Gears OS 記述の問題点

- +

Gears OS の構成図

+ +
+ gears_structure +
+ +
@@ -214,7 +237,7 @@

Context

@@ -226,10 +249,33 @@

Interface

+
typedef struct Stack<Type, Impl>{
+        union Data* stack;
+        union Data* data;
+        union Data* data1;
+        __code whenEmpty(...);
+        __code clear(Impl* stack,__code next(...));
+        __code push(Impl* stack,Type* data, __code next(...));
+        __code pop(Impl* stack, __code next(Type* data, ...));
+        __code pop2(Impl* stack, __code next(Type* data, Type* data1, ...));
+        __code isEmpty(Impl* stack, __code next(...), __code whenEmpty(...));
+        __code get(Impl* stack, __code next(Type* data, ...));
+        __code get2(Impl* stack, __code next(Type* data, Type* data1, ...));
+        __code next(...);
+} Stack;
+
+ + + +
+ +

Interface

+
Stack* createSingleLinkedStack(struct Context* context) {
     struct Stack* stack = new Stack();
     struct SingleLinkedStack* singleLinkedStack = new SingleLinkedStack();
@@ -334,13 +380,13 @@
 
-

比較

+

比較

-

今後の課題

+

今後の課題