속성 지향 프로그래밍

Attribute-oriented programming

속성 지향 프로그래밍(@OP)은 프로그램 수준 표시 기법이다.프로그래머는 프로그램 요소(예: 클래스 및 방법)에 애플리케이션별 또는 도메인별 의미론을 유지함을 나타내는 속성을 표시할 수 있다.예를 들어, 일부 프로그래머는 "로그링" 속성을 정의하고 그것을 로깅 기능을 구현해야 하는 방법을 나타내는 방법과 연관시킬 수 있는 반면, 다른 프로그래머는 "웹 서비스" 속성을 정의하고 클래스와 연결하여 클래스가 웹 서비스로 구현되어야 함을 나타낼 수 있다.애플리케이션별 또는 도메인별 의미론(예: 로깅 및 웹 서비스 기능)으로부터 별도의 애플리케이션의 핵심 논리(또는 비즈니스 논리)를 속성화한다.이러한 의미론의 구현 세부사항을 프로그램 코드에 숨김으로써 속성은 프로그래밍 추상화 수준을 높이고 프로그래밍 복잡성을 줄여 더 단순하고 읽기 쉬운 프로그램을 만든다.속성과 관련된 프로그램 요소는 지원 도구(예: 전처리기)에 의해 보다 상세한 프로그램으로 변환된다.예를 들어, 전처리가 "로그" 속성과 관련된 방법에 로깅 프로그램을 삽입할 수 있다.

다양한 언어로 된 속성 중심 프로그래밍

자바

J2SE 5.0 릴리스에 Java용 메타데이터 Facility(JSR-175)가 포함됨에 따라 즉시 속성 중심 프로그래밍을 활용할 수 있게 되었고, XDoclet 라이브러리에서는 이전 버전의 Java에서 속성 중심 프로그래밍 방식을 사용할 수 있게 되었다.

C#

C# 언어는 그것의 첫 번째 릴리스로부터 속성을 지원해왔다.그러나 이러한 속성은 런타임 정보를 제공하기 위해 사용되며 전처리자가 사용하지 않는다(C#의 참조 구현에는 없다).

UML

통합 모델링 언어(UML)는 고정관념이라는 일종의 속성을 지원한다.

해킹

Hack 프로그래밍 언어는 속성을 지원한다.속성은 다양한 프로그램 엔티티에 부착할 수 있으며, 이러한 속성에 대한 정보는 반영을 통해 런타임에 검색할 수 있다.

도구들

참조

  • "Attribute-Oriented Programming". An Introduction to Attribute-Oriented Programming. Archived from the original on May 26, 2005. Retrieved July 22, 2005.
  • Wada, Hiroshi; Suzuki, Junichi (2005). "Modeling Turnpike Frontend System: a Model-Driven Development Framework Leveraging UML Metamodeling and Attribute-Oriented Programming" (PDF). In Proc. of the 8th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MoDELS/UML 2005). Archived (PDF) from the original on 2016-03-03. Retrieved 2006-03-21.
  • Rouvoy, Romain; Merle, Philippe (2006). "Leveraging Component-Oriented Programming with Attribute-Oriented Programming" (PDF). In Proc. of the 11th ECOOP International Workshop on Component-Oriented Programming (WCOP 2006). Archived from the original (PDF) on 2006-12-23.

외부 링크