애스펙트 C++
AspectC++개발자 | Olaf Spinzyk(프로젝트 리더), Georg Blaschke, Christoph Borchert, Benjamin Kramer, Daniel Lohmann, Horst Schirmeier, Ute Spinzyk, Reinhard Tartler, Matthias Urban |
---|---|
최초출시 | 2001년 11월 6일; | 전
안정적인 방출 | 2.3 / 2021년 2월 17일, 전 ( |
작성자 | C++ |
운영체제 | 크로스 플랫폼 |
유형 | Source-to-Source 컴파일러 |
면허증. | GPL 2+ |
웹사이트 | www |
Aspect C++는 C와 C++ 언어의 측면 지향 확장입니다. 소스 대 소스 컴파일러가 있으며, 이 컴파일러는 AspectC++ 소스 코드를 컴파일 가능한 C++로 변환합니다. 컴파일러는 GNU GPL에서 사용할 수 있지만 일부 마이크로소프트 윈도우 전용 확장은 순수 시스템 GmbH를 통해서만 사용할 수 있습니다.
측면 지향 프로그래밍을 통해 단일 모듈, 측면에서 교차 절단 문제를 모듈화할 수 있습니다. 측면은 기존 클래스를 수정할 수 있지만 가장 일반적으로 기존 기능의 이전, 이후 또는 주변에서 실행되는 '어드바이스'를 제공합니다.
예
특정 기능에 대한 모든 호출은 'cer' 또는 인쇄 문을 여러 곳에 삽입하는 대신 측면을 사용하여 추적할 수 있습니다.
측면 트레이서 { 조언 불러("% %이터::리셋(...)") : 전에() { 쎄르 << "이터라고 부르려고 합니다.:"에 대해 재설정 << 조인포인트::서명() << 끝을 맺다; } };
트레이서 측면은 전화를 걸기 전에 메시지를 출력합니다. %Iter::Reset
.그 %Iter
구문은 Iter로 끝나는 모든 클래스와 일치한다는 것을 의미합니다.
소스 코드의 각 '일치' 위치를 조인 포인트라고 합니다. 이 조언은 해당 코드에 조인(또는 조언)됩니다. AspectC++는 조인 포인트 API를 제공하여 조인 포인트에 대한 정보를 제공하고 액세스합니다. 예를 들어, 함수:
조인포인트::서명()
일치하는 함수의 이름을 반환합니다. %Iter::Reset
)이 곧 호출될 것입니다.
조인 포인트 API는 또한 인수의 유형 또는 값과 메서드 또는 함수의 반환 유형 및 반환 값에 액세스하는 측면 내에서 사용할 수 있는 컴파일 시간 유형 정보를 제공합니다.
참고문헌
외부 링크