コード領域を対象とする関心事を扱うためのアスペクト指向プログラミング言語の拡張

書誌事項

タイトル別名
  • コード リョウイキ オ タイショウ ト スル カンシンゴト オ アツカウ タメ ノ アスペクト シコウ プログラミング ゲンゴ ノ カクチョウ
  • Regioncut: A Designator for Selecting a Code Region in Aspect-oriented Programming Language

この論文をさがす

説明

本稿ではアスペクト指向プログラミング言語の新たな言語機構である regioncut と assertion for advice を提案する.アスペクト指向プログラミングはオブジェクト指向プログラミングではモジュール化を行いにくい横断的関心事をアスペクトという単位でモジュール化する技術である.しかし,従来のアスペクト指向プログラミング言語では同期処理や例外処理などの,コード領域を対象とする関心事のモジュール化をうまく行えないという問題があった.そこで我々は regioncut という指定子をアスペクト指向プログラミング言語である AspectJ に導入することで,コード領域に対する関心事をアスペクトとしてモジュール化できるようにする.しかしながら,ある時点で正しく適用されていたアスペクトがコードの変更を行っていく過程で,適用されなくなってしまう危険性が従来よりも大きくなってしまう.その危険性を低下させるため,我々は assertion for advice という言語機構をあわせて導入する.これを用いて,アスペクトが意図した箇所に適用されているかどうかを静的に検査する.これら 2 つの言語機構をオープンソースのライブラリである Javassist および Hadoop に適用して評価を行い,同期処理に関する関心事をアスペクトに分離できることを確認した.

This paper proposes two language constructs for aspect-oriented programming language: Regioncut and Assertion for Advice. Aspect-oriented programming helps programmers to modularize crosscutting concerns, which object-oriented programming hard to do, as an aspect. However, in the existing aspect-oriented programming languages, it is difficult to deal with concerns related to code regions, for example, synchronization and exception handling concerns. To address this problem, we propose a new language construct named regioncut, a new kind of pointcut designator, for aspect-oriented programming language. It enables programmers to select code regions and to modularize such a concerns. To select the region which programmers need to modularize, they should specify more information than ordinary pointcuts. It increases risk that selected regions get unselected. To decrease the risk, we also propose Assertion for Advice. By Assertion for Advice, programmers can check programs whether aspects are applied to the expected points. We evaluated the design of our constructs by applying them to the open-source software product Javassist and Hadoop. We found that they have enough power to separate synchonization concern into aspect.

収録刊行物

関連プロジェクト

もっと見る

キーワード

詳細情報 詳細情報について

問題の指摘

ページトップへ