Attribute-oriented programming

Programming paradigms

* Action
* Agent-oriented
* Array-oriented
* Automata-based
* Concurrent computing
* Relativistic programming
* Data-driven
* Declarative (contrast: Imperative)
* Functional
* Functional logic
* Purely functional
* Logic
* Abductive logic
* Answer set
* Concurrent logic
* Functional logic
* Inductive logic
* Constraint
* Constraint logic
* Concurrent constraint logic
* Dataflow
* Flow-based
* Reactive
* Ontology
* Differentiable
* Dynamic/scripting
* Event-driven
* Function-level (contrast: Value-level)
* Point-free style
* Concatenative
* Generic
* Imperative (contrast: Declarative)
* Procedural
* Object-oriented
* Polymorphic
* Intentional
* Language-oriented
* Domain-specific
* Literate
* Natural-language programming
* Metaprogramming
* Automatic
* Inductive programming
* Reflective
* Attribute-oriented
* Macro
* Template
* Non-structured (contrast: Structured)
* Array
* Nondeterministic
* Parallel computing
* Process-oriented
* Probabilistic
* Quantum
* Set-theoretic
* Stack-based
* Structured (contrast: Non-structured)
* Block-structured
* Structured concurrency
* Object-oriented
* Actor-based
* Class-based
* Concurrent
* Prototype-based
* By separation of concerns:
* Aspect-oriented
* Role-oriented
* Subject-oriented
* Recursive
* Symbolic
* Value-level (contrast: Function-level)

* v
* t
* e

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

## Contents

* 1 Attribute-oriented programming in various languages
* 1.1 Java
* 1.2 C#
* 1.3 UML
* 1.4 Hack
* 2 Tools
* 3 References
* 4 External links

## Attribute-oriented programming in various languages

### Java

With the inclusion of Metadata Facility for Java (JSR-175)[1] 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 (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

1. ↑ "The Java Community Process(SM) Program - communityprocess - final". https://jcp.org/aboutJava/communityprocess/final/jsr175/index.html.

* "Attribute-Oriented Programming". An Introduction to Attribute-Oriented Programming. Archived from the original on May 26, 2005. https://web.archive.org/web/20050526230023/http://dssg.cs.umb.edu/resources/attribute-oriented-programming.html. 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". In Proc. of the 8th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MoDELS/UML 2005). https://www.cs.umb.edu/~jxs/pub/models05.pdf.
* Rouvoy, Romain; Merle, Philippe (2006). "Leveraging Component-Oriented Programming with Attribute-Oriented Programming". In Proc. of the 11th ECOOP International Workshop on Component-Oriented Programming (WCOP 2006). Archived from the original on 2006-12-23. https://web.archive.org/web/20061223004531/http://research.microsoft.com/~cszypers/events/WCOP2006/rouvoy-wcop-06.pdf.

## External links

* Don Schwarz. Peeking Inside the Box: Attribute-Oriented Programming with Java5
* Sun JSR 175
* Attributes and Reflection \- sample chapter from Programming C# book
* Modeling Turnpike Project
* Fraclet : An annotation-based programming model for the Fractal component model
* Attribute Enabled Software Development book

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Attribute-oriented programming. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Attribute-oriented_programming&oldid=3361506"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template