Mercurial > hg > Papers > 2022 > riono-master
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}
--- 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}