Attribute-oriented programming (@OP) is a technique for embedding metadata, namely
attributes
Attribute may refer to:
* Attribute (philosophy), an extrinsic property of an object
* Attribute (research), a characteristic of an object
* Grammatical modifier, in natural languages
* Attribute (computing), a specification that defines a pro ...
, within program code.
Attribute-oriented programming in various languages
Java
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.
C#
The C# language has supported attributes from its very first release. These attributes was used to give run-time information and are not used by a preprocessor. Currently with source generators, you can use attributes to drive generation of additional code at compile-time.
UML
The
Unified Modeling Language
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally ...
(UML) supports a kind of attribute called
stereotypes
In social psychology, a stereotype is a generalized belief about a particular category of people. It is an expectation that people might have about every person of a particular group. The type of expectation can vary; it can be, for example ...
.
Hack
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.
Tools
Annotation Processing Tool (apt)Spoon an Annotation-Driven Java Program Transformer
XDoclet a Javadoc-Driven Program Generator
References
*
*
*
External links
* Don Schwarz
* Sun
ttps://www.jcp.org/en/jsr/detail?id=175 JSR 175Attributes and Reflection- sample chapter fro
Programming C#book
Fraclet An annotation-based programming model for th
Fractalcomponent model
Attribute Enabled Software Developmentbook
Programming paradigms
{{Comp-sci-stub