애스펙트 C++

AspectC++
애스펙트 C++ 컴파일러
개발자Olaf Spinzyk(프로젝트 리더), Georg Blaschke, Christoph Borchert, Benjamin Kramer, Daniel Lohmann, Horst Schirmeier, Ute Spinzyk, Reinhard Tartler, Matthias Urban
최초출시2001년 11월 6일; 22년(2001-11-06)
안정적인 방출
2.3 / 2021년 2월 17일, 2년 전 (2021-02-17)
작성자C++
운영체제크로스 플랫폼
유형Source-to-Source 컴파일러
면허증.GPL 2+
웹사이트www.aspectc.org

Aspect C++C와 C++ 언어의 측면 지향 확장입니다. 소스 대 소스 컴파일러가 있으며, 이 컴파일러는 AspectC++ 소스 코드를 컴파일 가능한 C++로 변환합니다. 컴파일러는 GNU GPL에서 사용할 수 있지만 일부 마이크로소프트 윈도우 전용 확장은 순수 시스템 GmbH를 통해서만 사용할 수 있습니다.

측면 지향 프로그래밍을 통해 단일 모듈, 측면에서 교차 절단 문제를 모듈화할 수 있습니다. 측면은 기존 클래스를 수정할 수 있지만 가장 일반적으로 기존 기능의 이전, 이후 또는 주변에서 실행되는 '어드바이스'를 제공합니다.

특정 기능에 대한 모든 호출은 'cer' 또는 인쇄 문을 여러 곳에 삽입하는 대신 측면을 사용하여 추적할 수 있습니다.

측면 트레이서 {     조언 불러("% %이터::리셋(...)") : 전에()    {       쎄르 << "이터라고 부르려고 합니다.:"에 대해 재설정 << 조인포인트::서명() << 끝을 맺다;    } }; 

트레이서 측면은 전화를 걸기 전에 메시지를 출력합니다. %Iter::Reset.그 %Iter 구문은 Iter로 끝나는 모든 클래스와 일치한다는 것을 의미합니다.

소스 코드의 각 '일치' 위치를 조인 포인트라고 합니다. 이 조언은 해당 코드에 조인(또는 조언)됩니다. AspectC++는 조인 포인트 API를 제공하여 조인 포인트에 대한 정보를 제공하고 액세스합니다. 예를 들어, 함수:

조인포인트::서명() 

일치하는 함수의 이름을 반환합니다. %Iter::Reset)이 곧 호출될 것입니다.

조인 포인트 API는 또한 인수의 유형 또는 값과 메서드 또는 함수의 반환 유형 및 반환 값에 액세스하는 측면 내에서 사용할 수 있는 컴파일 시간 유형 정보를 제공합니다.

참고문헌

  1. ^ "AspectC++ Contact".
  2. ^ "NetBeat Webhosting - www.netbeat.de".

외부 링크