2016 Fiscal Year Research-status Report
Project/Area Number |
26330089
|
Research Institution | Shibaura Institute of Technology |
Principal Investigator |
福田 浩章 芝浦工業大学, 工学部, 准教授 (30383946)
|
Project Period (FY) |
2014-04-01 – 2018-03-31
|
Keywords | アスペクト指向 / 非同期処理 / 継続 |
Outline of Annual Research Achievements |
本研究は,当初の目的であるプログラムの実行履歴にマッチするステートフルアスペクトの意味論,およびアドバイス織込みの意味論を動的に変更する機構に関しては一定の成果を挙げ,ジャーナル論文(Science of Computer Programming)を執筆,採択された. その後,研究遂行過程で実現したアスペクト織込み機構を応用し,近年特にWebの開発で利用されている非同期処理の複雑さを隠蔽する機構の研究に取り組み,ActionScriptを用いてライブラリ(SyncAS)の研究開発を行い,その成果をIJSEKE(International Journal of Software Engineering and Knowledge Engineering)で発表した.SyncASでは,try-catchやreturnなど,プログラムの実行がジャンプする場合や,ループといった制御構造が存在すると本研究の機構が適用できないことが判明しており,それを解決することが課題であった.この問題を解決するため,今年度はアスペクトとCall/CCを応用し,JavaScriptで同等の機構を実現する研究(Sync/CC)に取り組み,プロトタイプシステムを実装し,その成果をFOAL2016(Workshop on Foundations Of Aspect-Oriented Languages)で発表した.Sync/CCはまだプロトタイプシステムであり,一般的なブラウザでは動作しない.そのため,JavaScriptのプログラムをContinuation Passing Styleに変換する機構(Translator)が必要である.Translatorを実現し,非同期処理を多用するWebアプリケーションでその効果を確認することが現在の課題である.
|
Current Status of Research Progress |
Current Status of Research Progress
1: Research has progressed more than it was originally planned.
Reason
本研究の当初の目的は達成できており,その意味で当初計画以上に研究は進展している.昨年度実現したSync/ASでは,try-catchやreturnなどプログラムの実行がジャンプする場合や,whileやforといったループが含まれていると機能しないという問題がわかっており,これを解決することがが新たな研究目的であった. そこで,本年度はプログラム言語の研究成果であるCall/CCとアスペクトを組み合わせることでこの問題に取り組み,プロトタイプシステム(Sync/CC)を実現した.Sync/CCでは,JavaScriptと,アスペクト思考フレームワークであるAspectScript,そして継続(Continuation)をサポートしているJavaScript実行エンジン,Rhinoを利用している.Sync/CCでは,Webアプリケーションのイベント処理に着目し,非同期処理を含むイベントハンドラの実行を次のようにして中断・再実行している.(1)非同期処理の実行直後にアスペクトを織込み,Continuationを保持する.(2)イベントハンドラの実行からメインスレッドに処理を戻す.(3)非同期処理のコールバック実行時にアスペクトを織込み,本来の処理を実行した後,(1)で保持したContinuationを取り出してイベントハンドラの処理を継続する. 現在Sync/CCはRhinoを利用しているため,一般的なウェブブラウザでは実行できない.そのため,JavaScriptで記述されたプログラムをContinuation Passing Styleに変更し,独自でContinuationを保持する機構を実現する必要がある.
|
Strategy for Future Research Activity |
現在のSync/CCは,ContinuationをサポートしたRhinoでしか実行することができない.そのため,現実的なWebアプリケーション開発での,ソースコードの可読性,モジュール性,可変性などを評価することができない. そこで,JavaScriptで記述されたプログラムをContinuation Passing Styleに変換する機構(Translator)を実現し,一般的なウェブブラウザでSync/CCを実行できる環境を実現する.そして,JavaScriptで非同期を多用するアプリケーションを実装し,先に述べた観点からSync/CCを評価する.具体的なステップとして,Continuation.js(https://github.com/BYVoid/continuation)を参考にし,Translatorの研究開発を行う.そして,FaceBookのAPIを利用するなど,JavaScriptでネットワークアクセスを多用するアプリケーションを実装し,Sync/CCを評価する.そして,これらの成果をまとめ,Transactions on Software Engineering(TSE)などの英字論文誌に投稿する. 一方,本研究課題でプログラムの実行履歴にマッチさせるために利用したMatcherCellsは,CellとRuleの組み合わせによってマッチの振る舞いを柔軟に変更できる仕組みである.この仕組はプログラムの実行履歴だけでなく,文字列やストリームデータのマッチングプロセスに応用できる可能性があるため,MatcherCellsを マッチング処理のメタアルゴリズムとして拡張し,論文誌に投稿したいとも考えている.
|
Causes of Carryover |
2016年9月にhe 32nd ACM SIGAPP Symposium On Applied Computing(SAC2017)に論文を投稿し,Full paperで採択されました.SAC2017は2017年4月に開催されるため,経費の繰越が必要でした.
|
Expenditure Plan for Carryover Budget |
SAC2017の参加費,渡航費として利用する.
|