AspectC++ (original) (raw)
AspectC++ 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. Aspect-oriented programming allows modularizing cross-cutting concerns in a single module, an aspect.Aspects can modify existing classes, but most commonly they provide 'advice' that runs before, after, or aroundexisting functionality.
Property | Value |
---|---|
dbo:abstract | AspectC++ 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. Aspect-oriented programming allows modularizing cross-cutting concerns in a single module, an aspect.Aspects can modify existing classes, but most commonly they provide 'advice' that runs before, after, or aroundexisting functionality. (en) AspectC++는 C와 C++ 언어의 관점 지향 확장이다. AspectC++ 소스 코드를 호환 C++로 번역하는 를 보유하고 있다. 이 컴파일러는 GNU GPL 하에서 이용할 수 있으나 일부 마이크로소프트 윈도우에 특화된 확장들은 순수 시스템 GmbH를 통해서만 이용이 가능하다. 관점 지향 프로그래밍은 횡단 관심사를 하나의 모듈, 즉 관점(애스펙트, aspect)로 모듈화하는 것을 허용한다. 애스펙트는 기존의 클래스를 수정할 수 있지만 대체적으로는 기존 기능의 이전(before), 이후(after), 주변(around)에 실행할 "어드바이스"(advice)를 제공한다. (ko) 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++に関する記事が掲載されている。 (ja) AspectC++ — аспектно-ориентированное расширение языка C++, программа, написанная на C++ является валидной программой на AspectC++. По синтаксису и семантике похож на AspectJ. Существует свободный транслятор в язык C++. (ru) |
dbo:genre | dbr:Source-to-source_compiler |
dbo:latestReleaseDate | 2021-02-17 (xsd:date) |
dbo:latestReleaseVersion | 2.3 |
dbo:license | dbr:GNU_General_Public_License |
dbo:operatingSystem | dbr:Cross-platform |
dbo:programmingLanguage | dbr:C++ |
dbo:releaseDate | 2001-11-06 (xsd:date) |
dbo:wikiPageExternalLink | http://www.aspectc.org/ http://www.aosd.net http://www.aspectc.org |
dbo:wikiPageID | 5926156 (xsd:integer) |
dbo:wikiPageLength | 3542 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1090945169 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Cross-platform dbr:Source-to-source_compiler dbr:GNU_General_Public_License dbr:Computer_science dbr:Computing dbr:C++ dbr:C_(programming_language) dbr:Join_point dbr:Source_code dbc:Aspect-oriented_programming dbr:Aspect-oriented_programming dbc:C++_programming_language_family dbr:Microsoft_Windows dbr:Programming_language dbr:Compile-time |
dbp:developer | Olaf Spinczyk , Georg Blaschke, Christoph Borchert, Benjamin Kramer, Daniel Lohmann, Horst Schirmeier, Ute Spinczyk, Reinhard Tartler, Matthias Urban (en) |
dbp:genre | dbr:Source-to-source_compiler |
dbp:latestReleaseDate | 2021-02-17 (xsd:date) |
dbp:latestReleaseVersion | 2.300000 (xsd:double) |
dbp:license | dbr:GNU_General_Public_License |
dbp:name | AspectC++ Compiler (en) |
dbp:operatingSystem | dbr:Cross-platform |
dbp:programmingLanguage | dbr:C++ |
dbp:released | 2001-11-06 (xsd:date) |
dbp:website | http://www.aspectc.org |
dbp:wikiPageUsesTemplate | dbt:Infobox_software dbt:Reflist dbt:Start_date_and_age dbt:Start_date_and_years_ago dbt:Soft-eng-stub dbt:Aosd |
dct:subject | dbc:Aspect-oriented_programming dbc:C++_programming_language_family |
gold:hypernym | dbr:Extension |
rdf:type | owl:Thing dbo:Software schema:CreativeWork dbo:Work wikidata:Q386724 wikidata:Q7397 yago:Abstraction100002137 yago:Code106355894 yago:CodingSystem106353757 yago:Communication100033020 yago:Writing106359877 yago:WrittenCommunication106349220 yago:Software106566077 |
rdfs:comment | AspectC++ 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. Aspect-oriented programming allows modularizing cross-cutting concerns in a single module, an aspect.Aspects can modify existing classes, but most commonly they provide 'advice' that runs before, after, or aroundexisting functionality. (en) AspectC++는 C와 C++ 언어의 관점 지향 확장이다. AspectC++ 소스 코드를 호환 C++로 번역하는 를 보유하고 있다. 이 컴파일러는 GNU GPL 하에서 이용할 수 있으나 일부 마이크로소프트 윈도우에 특화된 확장들은 순수 시스템 GmbH를 통해서만 이용이 가능하다. 관점 지향 프로그래밍은 횡단 관심사를 하나의 모듈, 즉 관점(애스펙트, aspect)로 모듈화하는 것을 허용한다. 애스펙트는 기존의 클래스를 수정할 수 있지만 대체적으로는 기존 기능의 이전(before), 이후(after), 주변(around)에 실행할 "어드바이스"(advice)를 제공한다. (ko) AspectC++ — аспектно-ориентированное расширение языка C++, программа, написанная на C++ является валидной программой на AspectC++. По синтаксису и семантике похож на AspectJ. Существует свободный транслятор в язык C++. (ru) 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の終わりで全てのクラスにマッチするという意味である。 (ja) |
rdfs:label | AspectC++ (en) AspectC++ (ko) AspectC++ (ja) AspectC++ (ru) |
owl:sameAs | freebase:AspectC++ wikidata:AspectC++ dbpedia-ja:AspectC++ dbpedia-ko:AspectC++ dbpedia-ru:AspectC++ https://global.dbpedia.org/id/4TQdC |
prov:wasDerivedFrom | wikipedia-en:AspectC++?oldid=1090945169&ns=0 |
foaf:homepage | http://www.aspectc.org |
foaf:isPrimaryTopicOf | wikipedia-en:AspectC++ |
foaf:name | AspectC++ Compiler (en) |
is dbo:language of | dbr:Aspect_weaver |
is dbo:wikiPageWikiLink of | dbr:Andreas_Gal dbr:Aspect_weaver dbr:Outline_of_C++ |
is dbp:language of | dbr:Aspect_weaver |
is foaf:primaryTopic of | wikipedia-en:AspectC++ |