Aspect-Oriented Framework Development: Dynamic AO Languages vs. Static AO Languages

今、

Stefan Hanenberg, Robert Hirschfeld
Constructing Highly Adaptable Frameworks Using Aspect-Oriented Composition Techniques
(実際に論文を見てみるとタイトルは「Applying Aspect-Oriented Composition to Framework Development - A Case Study」)
First International Workshop on Foundations of Unanticipated Software Evolution. (2004)

DL: http://joint.org/fuse2004/index.html

を読んでいて、ちょっとアスペクト指向フレームワーク開発の自信がついたので、ちょっとさらに AOFW について考えてみることに。


この論文では、AspectS を使って AOP のメカニズムを、フレームワーク開発に適用している。AspectS は、ダイナミックな AO 言語だと思うので、この論文での適用例が可能になるんじゃないかと思う。AspectS は使ったことがないので、ちょっと分からないけど。


では、AspectJ のようなコンパイル時にアスペクトのウィーブを行うような、static な AO 言語では、どうだろうか? AOFW を開発するのに適しているのだろうか? もし、適していないのなら、どのような問題点があげられるだろうか?


まとめると:

  • dynamic な AO 言語(たとえば AspectS)と static な AO 言語(たとえば AspectJ)における、AOP のコンセプトをフレームワーク開発に適用した場合の、違いは何だろう? その違いは、どのような言語的な違いから発生するものだろうか?