This article includes a list ofgeneral references, butit lacks sufficient correspondinginline citations. Please help toimprove this article byintroducing more precise citations.(August 2009) (Learn how and when to remove this message) |
Attribute-oriented programming (@OP) is a technique for embedding metadata, namelyattributes, within program code.
C++ has support for attributes.C++11 added attributes, which can indicate extra information to the compiler.C++26 added annotations forreflection.
TheC# 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.
TheHack 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.
Java has support for annotations. With the inclusion ofMetadata Facility for Java (JSR-175)[1] into theJ2SE 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.
In Java, annotations are used for code generation and reflection.
TheUnified Modeling Language (UML) supports a kind of attribute calledstereotypes.