Attribute-oriented programming (@OP) is a technique for embedding metadata, namely
attributes, within program code.
Attribute-oriented programming in various languages
Java
With the inclusion of
Metadata Facility for Java (JSR-175) into the
J2SE
Java Platform, Standard Edition (Java SE) is a computing platform for development and deployment of portable code for desktop and server environments. Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE).
The platform uses Jav ...
5.0 release it is possible to utilize attribute-oriented programming right out of the box.
XDoclet
XDoclet is an open-source code generation library that enables Attribute-oriented programming for Java via insertion of special Javadoc tags. It comes with a library of predefined tags, which simplify coding for various technologies: Java EE, ...
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 m ...
(UML) supports a kind of attribute called
stereotypes.
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