Attribute-oriented programming

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Attribute-oriented programming (@OP) is a technique for embedding metadata, namely attributes, within program code.

Attribute-oriented programming in various languages[edit]


With the inclusion of Metadata Facility for Java (JSR-175) into the J2SE 5.0 release it is possible to utilize attribute-oriented programming right out of the box. XDoclet library makes it possible to use attribute-oriented programming approach in earlier versions of Java.


The C# language has supported attributes from its very first release. However these attributes are used to give run-time information and are not used by a preprocessor (there isn't one in C#'s reference implementation).


The Unified Modeling Language (UML) supports a kind of attribute called stereotypes.


The Hack programming language supports attributes. Attributes can be attached to various program entities, and information about those attributes can be retrieved at run-time via reflection.



  • "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.

External links[edit]