• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to project page

2016 Fiscal Year Research-status Report

拡張可能なステートフルアスペクトの設計と実装

Research Project

Project/Area Number 26330089
Research InstitutionShibaura 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の参加費,渡航費として利用する.

  • Research Products

    (3 results)

All 2017 2016 Other

All Int'l Joint Research (1 results) Presentation (2 results) (of which Int'l Joint Research: 1 results)

  • [Int'l Joint Research] Universidad Catolica del Norte(Chile)

    • Country Name
      Chile
    • Counterpart Institution
      Universidad Catolica del Norte
  • [Presentation] 非同期並列プログラミング言語の意味論と実装2017

    • Author(s)
      諏訪重貴
    • Organizer
      第79回情報処理学会全国大会
    • Place of Presentation
      名古屋大学
    • Year and Date
      2017-03-16 – 2017-03-16
  • [Presentation] Using Continuations and Aspects to Tame Asynchronous Programming on the Web2016

    • Author(s)
      Paul Leger and Hiroaki Fukuda
    • Organizer
      Workshop on Foundations Of Aspect-Oriented Languages
    • Place of Presentation
      Malaga, Spain
    • Year and Date
      2016-04-01 – 2016-04-01
    • Int'l Joint Research

URL: 

Published: 2018-01-16  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi