ネタ

Simplifying Pointcut Definitions

AspectJ におけるポイントカットの定義を、もっとシンプルにできるか? 一つの方法は、もし、あるアスペクトが特定のクラス(or アスペクト)にしか興味がないのであれば、クラスの指定を省くことで、ポイントカットの定義をもっとシンプルに書ける。 たとえ…

Object-Oriented Refactoring vs. Aspect-Oriented Refactoring

オブジェクト指向なリファクタリングと、アスペクト指向なリファクタリングは、コンフリクト*1するか? 微妙にあるかもしれない、と思い中。オブジェクト指向な設計(or クラスの分け方とか)とアスペクト指向な設計もコンフリクトするかもしれない。 コンフ…

Aspectual Overriding

AOP の特徴の一つは、メソッドの呼び出しなどのインターセプトができること。オーバーライドは、継承する側が継承される側のメソッドを同じシグネチャを元にして書き換えること(正確な定義は知らない)。 そう、この二つ(インターセプトとオーバーライド)…

Aspects as Properties of Objects

英語怪しいけど・・・ インスタンス(オブジェクト)単位でアスペクトを適用できるとして、さらに、そのインスタンスに適用できるアスペクトが一つだけだと仮定すると、アスペクトは、オブジェクトのプロパティと見なせるかもしれない。 メソッドやフィール…

(Aspect Group == Aspectual Polymorphism) ?

前にも 書いた と思うけど、、、ある crosscutting concernを考えたときに、その concern に関して、同じ目的をもった複数のアスペクトが存在しているケースがあるように思える。 たとえば、ゲームのモード(レベル)なんかは、たぶん、crosscutting concern…

Dummy Join Points

AspectJ で気になることに一つに、アスペクトがインターセプトしやすいように(ポイントカットを指定しやすいように)、何もしないメソッドなんかを定義する、ということがある。 これが問題であると考えられることの理由は: ベースプログラムがアスペクトの…

Object or Relation or Aspect?

Ilia Bider Who is Agent: Object or Relation 2nd Workshop on Object-Oriented Language Engineering for the Post-Java Era : Back to Dynamicity. (2004) DL: http://prog.vub.ac.be/~wdmeuter/PostJava04/を読んでみて感じたこと。 この論文では AOP に…

ACO と淘汰

ACO (Ant Colony Optimization) に淘汰のメカニズムってあったっけか? ノード間のリンク(エッジ)をなくす、みたいなのはあるのかな・・・。

The Tyranny of XXX

AOSD (or AOP) で(そこそこ?)有名な用語に the tyranny of the Decompostion というのがある。意味的には、確か(正確なことは思い出せないけど、雰囲気的には)一つの分割単位じゃ色々と無理が出ますぜ or 特定の分割単位だけが優先させてるぜ、みたいな…

Change as Aspects : A Case Study

タイトルの意味は、変更をアスペクトで表そう、みたいな。 AspectJ の魅力的だけど、ちょっと使いどころが難しいそーな機能に、既存のライブラリ(or jar)に対するアスペクトの適用がある。そのような時にでのアスペクトが何をするかということの一つは、ラ…

Liskov Substitution Principle in Aspectual Polymorphism

タイトルの英語ウソくせえけど、、、Aspectual Polymorphism が何かは、ちょっと色々議論がありそうなテーマだと思うけど、雰囲気的には、オブジェクトの振る舞いが実際のオブジェクトの型(クラス)に によって変わるように、オブジェクトの振る舞いは、ど…

Reactive Aspects

's'いるのかどうか不明だけど・・・ アスペクトの持つ特徴として、一つ有益かもしれないものとして、アスペクトの機能(アドバイス)を 実行時に オンやオフにするものがあると思う。思う、っていうのは、実用的な状況が明確にイメージできないからだけど、…

Aspectual Reflection or Aspect-Oriented Reflection

ちょっとタイトルは大げさだけど、、、 もし、アドバイスにメソッドと同じように名前を付けられたら? public aspect MyAspect { before myBefore() { ... } } メソッドがリフレクションを通して、Method として取得できるのと同様に public class MyClass {…

ArchAJ

この前から書いていた、ArchJava っぽいことを @ (Attribute or Annottation) + AspectJ のソースを生成の話を、ちょっと具体的に。 ArchJava とは程遠いけど、雰囲気的には、以下のようなソースがあるとすると(あとで、ちゃんと実装上の問題とかをまとめて…

Generic Genetic Programming or Generative Generic Genetic Programming

いや、冗談だけど、、、(単に G を並べたかっただけ、、、でも、マジメに考えてみるのも面白いかも?)インスピレーション元: David J. Montana. Strongly Typed Genetic Programming. Evolutionary Computation Vol 3:2, 1995. (1995) DL: http://vishnu.b…

More AspectJ + @

Attribute or annotation or tag or @ の情報を利用して、AspectJ のソースコードを生成するヤツの続き。 以前に書いたもの(ArchJava と Traits)に加えて、次のようなものも実装できるかも、と思い中: Role Rule Virtual Class Delegation 具体的に、実装…

Simulating Modern Language Models with Generative and Aspect-Oriented Approach

ウソ臭いタイトルの英語はさておき、、、 前の日記でも書いたけど(今試し中だけど)ArchJava の特徴(Connector とか Port の抽象性)なんかを、Annotation (or Attribute or @) とソースコード(特に AspectJのコード)を生成するアプローチを用いることで…

Extensions as Aspects

基本的に、何かのソフトウェアやライブラリを拡張(or 変更)したい場合に取れるアプローチには: ソースコードを直接変更 継承(or サブクラス化) がある。 前者のアプローチの問題点は、変更される側(つまり、ライブラリ側)の変更に、変更する側が同期を…

Tag/Attribute/Annotation based Transformation with AspectJ

Tag/Attribute/Annotation(以下 @ で省略)を基にして、コードの変換を行おうとする場合、AspectJ の機能は、なかなか便利な気がする。 実際、今、それをもとに、二つのアイデアを実行中。 ダイナミックな AOP(たぶん、Aspectwerkz の @ を使うのと似た内…

Aspects as Implicit Connectors

アーキテクチャ記述言語(Architecture Description Languages: *1 )とアスペクトとの関係は? AspectJ を使えば Connection を書くのを、ArchJava みたいに明示的じゃなく、暗黙的にできる? 一応昔、ArchJava を AspectJ でエミュレートできないかを試し…

ソフトウェア開発の種類における AOP (or AOSD) の視点

ソフトウェア開発の種類を大雑把に(勝手に)分けてみると、以下の 3 つがあると思う。 アプリケーション開発 フレームワーク開発 プロダクトライン開発 それぞれの場合で AOP (AOSD) の技術を考えると、結構違いがある気がする。プロダクトラインが具体的に…

Asymmetry in Modular Units

英語が怪しいけど、、、 モジュールの単位として、対称というか非対称というか、一つの独占的なモジュールの単位(たとえばクラス)ではない、というのは、今後どちらの方向に進んでいくのだろうか。 AspectJ では、クラスとアスペクトが明示的にお互いは関…

Indirection and Reusability

間接的設計と再利用性の関係は? Indirect Observer

Benchmark for Programming Languages

プログラミング言語のためのベンチマークってどう? ソフトウェア開発で重要で避けられない点の1つは、ソフトウェアの発展(Evolution)にあると思う。ということで、いくかの発展的な状況を集めて、それぞれの言語でどのような発展結果になるのかを、調べて…

アスペクトとベースプログラムの関係

直感的には、アスペクトとベースプログラムの関係は、薄くしたほうが望ましいように思える。 しかし、具体的には、どのような理由からだろう? たとえば、Caesar では、クラスとアスペクトの明確な区別はない(クラスの中に、advice が書ける)。 さらに、ダ…

Grouping Advices

's' いるんかな? まあそれはさておき、、、 AspectJ での一つの面倒な点は、advice に対する advice を行いたい場合があるきがする。 before() : ... { beforeMethod(); // なんらかの前処理 method1(); afterMethod(); // なんらかの後処理 } before() : .…

Aspect-aware Design or Aspect-aware Refactoring

Bruno Harbulot and John R. Gurd. Using AspectJ to Separate Concerns in Parallel Scientific Java Code. To be published in the Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD). March 2004. DL: ht…

Feature Extraction using Ant Colony Programming

下のと同じく Mariusz Boryczka, Zbigniew J. Czech. Solving Approximation Problems by Ant Colony Programming. Proc. of the Genetic and Evolutionary Computation Conf. - GECCO'02, W.B. Langdon et al. (Eds.), New York City, NY, USA, (9-13 July,…

Object-Oriented Ant Colony Programming or Aspect-Oriented Ant Colony Programming

Mariusz Boryczka, Zbigniew J. Czech. Solving Approximation Problems by Ant Colony Programming. Proc. of the Genetic and Evolutionary Computation Conf. - GECCO'02, W.B. Langdon et al. (Eds.), New York City, NY, USA, (9-13 July, 2002) DL: ht…

inter-type declaration に名前をつける?

よくわからんけど、必要最低限のメソッドだけを、特定のクラスに inter-type declaration したいという場合があるきがする。というのも、クラスの interface は必要以上に複雑になってほしくないから。 でも、どうやって特定のメソッドだけを選択して、inter…