氏名: 尾関嘉一郎 (289834082)

論文題目: Join算法による並行計算の簡潔な記述が可能なJAVA言語


論文概要

本論文ではJAVAのマルチレッドプログラミングにおける同期や通信の簡潔な表現を可能にするために、Join算法の並行計算記述法を利用したJoinJAVA言語を提案する。 JAVA言語は現在広く使われているスレッドプログラミングが可能なオブジェクト指向言語である。 JAVAのスレッドプログラムの問題点として、プログラムの同期や通信に関する記述が分散するため記述が複雑になり、実行時の処理の流れがわかりづらくなることが上げられる。 これはJAVAに用意されている同期、通信に関する命令が単純なものしか無いことが原因である。 Join算法は並行計算モデルで、同時に動く複数のプロセスの同期や通信を簡潔に記述できる。 JoinJAVA言語は、各スレッドの生成や同期、通信をJoin算法を用いて記述し、それ以外のプログラムをJAVAで記述することを可能にする。 JAVAでのマルチスレッドプログラミングにおいて、各スレッド間の処理の流れをJoin算法で記述することが可能なため、記述だけでなく実行時の処理の流れが理解しやすくなる。 Join算法によって記述する部分からJAVAのプログラムを使用するために、Join算法の文法にJAVAステートメントを記述出来るように変更を加える。 JAVAで記述する部分からJoin算法によるスレッドに関する機能を使用するために、JAVAに対して新しい命令do、spawnを加える。 またJoinJAVA言語の有用性を示すために、JoinJAVAコンパイラを実装した。 JoinJAVAコンパイラはJoinJAVAプログラムを入力とし、JAVAプログラムを出力する。 JoinJAVAコンパイラによって出力されたプログラムをJAVAコンパイラでコンパイルすることによって、実際に動作するプログラムが出力される。 今回実装したJoinJAVAコンパイラはJoin算法で用いられる名前の他にJAVAの基本データ型、及びオブジェクトを扱うことができる。 JAVAコンパイラとJoinJAVAコンパイラを使用して実際にいくつかのスレッドプログラムをJAVAとJoinJAVA両方で作成する。 プログラム作成にかかる時間及び行数などの点から比較をおこなおうことによって、実際にJoinJAVAにより簡潔なスレッドプログラムの記述が可能になることを示す。


目次に戻る


asakura@nuie.nagoya-u.ac.jp