AspectC++
Sign in to saveAspectC++ is an aspect-oriented extension of C and C++ languages. It has a source-to-source compiler, which translates AspectC++ source code into compilable C++. The compiler is available under the GNU GPL, though some extensions specific to Microsoft Windows are only available through pure-systems GmbH.
Official website
The Home of AspectC++
aspectc.org →Link to the official site · 3,395 chars · not written by Vinony
Wikidata facts
- Instance of
- programming language
- Based on
- C++
- Official website
- aspectc.org
- Has use
- source-to-source compiler
Show 3 more facts
- manifestation of
- aspect-oriented programming
- programming paradigm
- aspect-oriented programming
- programmed in
- C++
Sources (1)
via Wikidata · CC0
Article · 日本語
AspectC++(アスペクトシープラスプラス)はC言語及びC++でアスペクト指向プログラミングを実現するための機能拡張。AspectC++のソースコードをC++のソースコードに変換する。GNU GPLライセンスであるが、一部のMicrosoft Windows固有の機能についてはpure-systems社のみが提供している。 アスペクト指向プログラミングはをアスペクト(側面)として1つにモジュール化できる。アスペクトは既存のクラスを修正できるが、一般的には既存の機能の実行前か実行後などで動作する「アドバイス」を提供する。 たとえばあるAPIコールが呼び出されるタイミングを全てトレースしたい場合、コードのあちこちにcerrやprint文を挿入するのではなく、以下のように実装して1つのアスペクトを生成する。 aspect Tracer{ advice call("% %Iter::Reset(...)") : before { cerr << "次でIter::Resetが呼ばれます " << JoinPoint::signature << endl; }}; 上記のTracerアスペクトは%Iter::Resetが呼ばれる前にメッセージを出力する。%Iterという構文はIterの終わりで全てのクラスにマッチするという意味である。 ソースコード内でマッチした場所をジョインポイントと呼び、アドバイスはそのコードに挿入される。AspectC++はジョインポイントについての情報にアクセスするためのジョインポイントAPIがある。たとえば JoinPoint::signature という関数は(%Iter::Resetにマッチした)これから呼び出されようとしているメソッド名を返す。 ジョインポイントAPIはまたアスペクト内で利用できるコンパイル時型情報を持ち、引数の型や値にアクセスしたり、メソッドや関数の戻り値の型や値にアクセスできる。 AspectC++ウェブサイト(下記外部)にドキュメントやチュートリアルがあるほか、AOSDカンファレンスの議事録にはAspect指向プログラミングとAspectC++に関する記事が掲載されている。
Abstract from DBpedia / Wikipedia · CC BY-SA