changeset 11:a82543f1da47

add TakeFromExample src
author riono <e165729@ie.u-ryukyu.ac.jp>
date Sun, 09 Jan 2022 18:15:51 +0900
parents 39cc44ae7917
children 6116a8fe4a53
files .hgignore Paper/chapter/1-Christie.tex Paper/master_paper.pdf Paper/master_paper.tex Paper/src/Take.java Paper/src/TakeFrom.java
diffstat 6 files changed, 24 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Fri Jan 07 14:44:02 2022 +0900
+++ b/.hgignore	Sun Jan 09 18:15:51 2022 +0900
@@ -12,4 +12,5 @@
 *.fls
 *.ilg
 *.gz
-*.fdb*
\ No newline at end of file
+*.fdb*
+*.lol
\ No newline at end of file
--- a/Paper/chapter/1-Christie.tex	Fri Jan 07 14:44:02 2022 +0900
+++ b/Paper/chapter/1-Christie.tex	Sun Jan 09 18:15:51 2022 +0900
@@ -78,13 +78,24 @@
   \item[PeekFrom(Remote DGM name)] Peekと処理動作は同じであるが、 Remote DGM nameを指定することで、その接続先(Remote)のDGMからPeek操作を行うことができる。 
 \end{description}
 
-\section{}
+\section{annotationを使用したデータの記述}
 
-
+ChristieではDGの指定にannotationを使用する。 annotationとはクラスやメソッド、パッケージに対して付加情報を記述できる
+Java のMeta Computationである。先頭に@を付けることで記述でき、オリジナルのアノテーションを定義することもできる。
+DGの宣言には型と変数を直接宣言し、変数名としてkeyを記述する。 そして、その宣言の上にannotationでTakeまたはPeekを指定する(ソースコード\ref{src:TakeExample})。
 
 
+\lstinputlisting[label=src:TakeExample, caption=Takeの例]{src/Take.java}
 
-
+annotationで指定したDGはCGを生成した際にCodeGear.class内で待ち合わせの処理が行われる。
+これにはJavaのreflectionAPIを利用しており、annotationと同時に変数名も取得できるため、面数名によるkeyの指定が可能になっている。
+また、DG内には型情報も保管しており、データ受信した際に適切にキャストを行なっている。
+そのためAliceの問題点としてある、送信されてきたデータが何の型かという問題を解消している。
 
+Christieのannotationはフィールドに対してのみ記述可能であるため、keyの指定とTake/Peekの指定を必ず一箇所で書くことが明確に決まっている。
+これより、Aliceの様に外のCGからkeyやデータへの干渉をされることがない。
+さらにkeyを変数名にしたことで、動的なkeyの指定やkeyと変数名の不一致による可読性の低下を防ぐことが可能となった。
 
+リモートノードに対してTake/Peekをする際には、TakeFrom/PeekFrom annotationを用いる(ソースコード\ref{src:TakeFromExample})。
 
+\lstinputlisting[label=src:TakeFromExample, caption=TakeFromの例]{src/TakeFrom.java}
Binary file Paper/master_paper.pdf has changed
--- a/Paper/master_paper.tex	Fri Jan 07 14:44:02 2022 +0900
+++ b/Paper/master_paper.tex	Sun Jan 09 18:15:51 2022 +0900
@@ -55,8 +55,10 @@
   language={},
   tabsize=4,
   lineskip=-0.5zw,
-  escapechar={@},
+  escapechar={@, \$},
+  captionpos=b
 }
+
 \def\lstlistingname{ソースコード}
 \def\lstlistlistingname{ソースコード目次}
 
@@ -93,7 +95,7 @@
 \listoftables
 
 %リスト目次
-% \lstlistoflistings
+\lstlistoflistings
 
 %chapters
 \input{chapter/0-introduction.tex}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/src/Take.java	Sun Jan 09 18:15:51 2022 +0900
@@ -0,0 +1,2 @@
+@Take
+public String data;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/src/TakeFrom.java	Sun Jan 09 18:15:51 2022 +0900
@@ -0,0 +1,2 @@
+@TakeFrom("remote_name")
+public String data;
\ No newline at end of file