Java プログラムをターゲットにしたアスペクト指向のプログラミング言語。 「Java プログラムをターゲットにする」とは、概ね、Java プログラムに対して処理を織り込む(割り込ませる)と言う意味。
ajc:コンパイルと織り込みを行うツール
AspectJ (と Java)で書いたプログラムを実行できる形式するためには、コンパイルと織り込みを行う必要があります。 これは
ajc を用いて行います。 Java にとっての javac と同じようなものです。
開発組織
現在、開発は(Java IDE で有名な)Eclipse.org の
Tools Project 下で行われています。 ここでは AspectJ とともに、その開発用の Eclipse プラグインである
AJDT (AspectJ Development Tools) も(別サブプロジェクトとして)開発されています。
AspectJ 5
AspectJ ではポイントカットやアドバイスの指定に(Java とは異なる)独特の構文を使うため、Java プログラマにとって閾が高く感じられます。 この問題を解消するために、AspectJ 5 以降では Java 言語の文法にしたがった Aspect の定義ができるようになりました。 基本的には「アノテーションを用いてポイントカットやアドバイスの種類を設定する」という形だと思ってください。
ただし、「ポイントカットを書くために空のメソッドを書かないといけない」とか、「ポイントカットを書く際には、結局元来の構文を書かないといけない」などのぎこちなさがあります。