<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Attribute-oriented_programming</id>
	<title>Attribute-oriented programming - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Attribute-oriented_programming"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Attribute-oriented_programming&amp;action=history"/>
	<updated>2026-05-04T18:41:55Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Attribute-oriented_programming&amp;diff=1505961&amp;oldid=prev</id>
		<title>imported&gt;Bhengefel: move tag to lead</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Attribute-oriented_programming&amp;diff=1505961&amp;oldid=prev"/>
		<updated>2024-09-23T13:58:51Z</updated>

		<summary type="html">&lt;p&gt;move tag to lead&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{More footnotes|date=August 2009}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attribute-oriented programming&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;@OP&amp;#039;&amp;#039;&amp;#039;) is a technique for embedding metadata, namely [[attribute (computing)|attributes]], within program code.&lt;br /&gt;
&lt;br /&gt;
== Attribute-oriented programming in various languages ==&lt;br /&gt;
=== Java ===&lt;br /&gt;
With the inclusion of [[Metadata Facility for Java]] (JSR-175)&amp;lt;ref&amp;gt;{{cite web | url=https://jcp.org/aboutJava/communityprocess/final/jsr175/index.html | title=The Java Community Process(SM) Program - communityprocess - final }}&amp;lt;/ref&amp;gt; into the [[Java Platform, Standard Edition|J2SE]] 5.0 release it is possible to utilize attribute-oriented programming right out of the box.&lt;br /&gt;
[[XDoclet]] library makes it possible to use attribute-oriented programming approach in earlier versions of Java.&lt;br /&gt;
&lt;br /&gt;
=== C# ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== UML ===&lt;br /&gt;
The [[Unified Modeling Language]] (UML) supports a kind of attribute called [[stereotype (UML)|stereotypes]].&lt;br /&gt;
&lt;br /&gt;
=== Hack ===&lt;br /&gt;
The [[Hack (programming language)|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.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [https://docs.oracle.com/javase/1.5.0/docs/guide/apt/ Annotation Processing Tool (apt)]&lt;br /&gt;
* [http://spoon.gforge.inria.fr/ Spoon], an Annotation-Driven Java Program Transformer&lt;br /&gt;
* [https://web.archive.org/web/20080314051510/http://xdoclet.codehaus.org/ XDoclet], a Javadoc-Driven Program Generator&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
{{Refbegin}}&lt;br /&gt;
* {{cite web|title=Attribute-Oriented Programming |url=http://dssg.cs.umb.edu/resources/attribute-oriented-programming.html |work=An Introduction to Attribute-Oriented Programming |accessdate=July 22, 2005 |url-status=dead |archiveurl=https://web.archive.org/web/20050526230023/http://dssg.cs.umb.edu/resources/attribute-oriented-programming.html |archivedate=May 26, 2005 }}&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | last = Wada&lt;br /&gt;
 | first = Hiroshi&lt;br /&gt;
 | author2 = Suzuki, Junichi&lt;br /&gt;
 | year = 2005&lt;br /&gt;
 | url = https://www.cs.umb.edu/~jxs/pub/models05.pdf&lt;br /&gt;
 | title = Modeling Turnpike Frontend System: a Model-Driven Development Framework Leveraging UML Metamodeling and Attribute-Oriented Programming&lt;br /&gt;
 | publisher = In Proc. of the 8th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MoDELS/UML 2005)&lt;br /&gt;
 | access-date = 2006-03-21&lt;br /&gt;
 | url-status = live&lt;br /&gt;
 | archive-url = https://web.archive.org/web/20160303170619/http://www.cs.umb.edu/~jxs/pub/models05.pdf&lt;br /&gt;
 | archive-date = 2016-03-03&lt;br /&gt;
 }}&lt;br /&gt;
* {{cite web&lt;br /&gt;
 |last=Rouvoy&lt;br /&gt;
 |first=Romain&lt;br /&gt;
 |author2=Merle, Philippe&lt;br /&gt;
 |year=2006&lt;br /&gt;
 |url=http://research.microsoft.com/~cszypers/events/WCOP2006/rouvoy-wcop-06.pdf&lt;br /&gt;
 |title=Leveraging Component-Oriented Programming with Attribute-Oriented Programming&lt;br /&gt;
 |publisher=In Proc. of the 11th ECOOP International Workshop on Component-Oriented Programming (WCOP 2006)&lt;br /&gt;
 |url-status=dead&lt;br /&gt;
 |archiveurl=https://web.archive.org/web/20061223004531/http://research.microsoft.com/~cszypers/events/WCOP2006/rouvoy-wcop-06.pdf&lt;br /&gt;
 |archivedate=2006-12-23&lt;br /&gt;
}}&lt;br /&gt;
{{Refend}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* Don Schwarz. [http://www.onjava.com/pub/a/onjava/2004/06/30/insidebox1.html Peeking Inside the Box: Attribute-Oriented Programming with Java5]&lt;br /&gt;
* Sun [https://www.jcp.org/en/jsr/detail?id=175 JSR 175]&lt;br /&gt;
* [http://www.ondotnet.com/pub/a/dotnet/excerpt/prog_csharp_ch18/index.html?page=1 Attributes and Reflection] - sample chapter from [https://www.oreilly.com/library/view/programming-c/0596001177/ Programming C#] book&lt;br /&gt;
* [https://web.archive.org/web/20060421202448/http://dssg.cs.umb.edu/projects/mturnpike.html Modeling Turnpike Project]&lt;br /&gt;
* [http://fractal.objectweb.org/fraclet Fraclet] {{Webarchive|url=https://web.archive.org/web/20080920003854/http://fractal.objectweb.org/fraclet |date=2008-09-20 }}: An annotation-based programming model for the [http://fractal.objectweb.org Fractal] component model&lt;br /&gt;
* [https://archive.today/20130128014428/http://madebits.com/aep/index.php Attribute Enabled Software Development] book&lt;br /&gt;
&lt;br /&gt;
{{Programming paradigms navbox}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming paradigms]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Soft-eng-stub}}&lt;br /&gt;
{{Comp-sci-stub}}&lt;/div&gt;</summary>
		<author><name>imported&gt;Bhengefel</name></author>
	</entry>
</feed>