dbo:abstract |
An aspect weaver is a metaprogramming utility for aspect-oriented languages designed to take instructions specified by aspects (isolated representations of significant concepts in a program) and generate the final implementation code. The weaver integrates aspects into the locations specified by the software as a pre-compilation step. By merging aspects and classes (representations of the structure of entities in the program), the weaver generates a woven class. Aspect weavers take instructions known as advice specified through the use of pointcuts and join points, special segments of code that indicate what methods should be handled by aspect code. The implementation of the aspect then specifies whether the related code should be added before, after, or throughout the related methods. By doing this, aspect weavers improve modularity, keeping code in one place that would otherwise have been interspersed throughout various, unrelated classes. (en) Le tissage est l'étape de la programmation orientée aspect qui a pour but d'insérer des bouts de codes appelés greffons (Advice) dans le code métier d'une application. Tisser un greffon dans une méthode revient à redéfinir la méthode comme la composition de son corps avec le greffon. Le tissage d'aspects au niveau de l'application est un mécanisme offrant l'extensibilité et l'adaptabilité, permettant ainsi à l'application de s'adapter facilement quand des nouveaux besoins font surface. Tisser un aspect peut se faire à plusieurs moments : à la compilation, au chargement et à l'exécution. Il existe de nombreux tisseurs dans différents langages mais c'est en Java que l'on trouve les tisseurs les plus matures (utilisabilité, stabilité, performances, intégration aux outils...). (fr) |
dbo:genre |
dbr:Aspect-oriented_programming |
dbo:language |
dbr:AspectC++ dbr:AspectJ |
dbo:thumbnail |
wiki-commons:Special:FilePath/AspectWeaver.svg?width=300 |
dbo:wikiPageExternalLink |
http://cse.sjtu.edu.cn/~zhao/pub/pdf/aoasia07.pdf%7Cisbn=978-0-7695-2870-0%7Cciteseerx=10.1.1.547.6577 http://fusion.cs.uni-magdeburg.de/pubs/ecoop2001.pdf%7Cjournal=Proceedings http://reference.kfupm.edu.sa/content/s/e/a_semantics_for_advice_and_dynamic_join__97028.pdf http://www.acs.org.au/documents/public/crpit/CRPITV10Spinczyk.pdf http://www.csg.is.titech.ac.jp/paper/yoshiki-gpce03.pdf%7Caccess-date=4 http://www.daimi.au.dk/~eernst/aosdF06/papers/AJWeaving.pdf%7Cdoi=10.1145/976270.976276%7Cisbn=978-1-58113-842-9%7Carchive-url=https:/web.archive.org/web/20110727171117/http:/www.daimi.au.dk/~eernst/aosdF06/papers/AJWeaving.pdf%7Carchive-date=27 http://www.imamu.edu.sa/DContent/IT_Topics/Aspect%20Support%20in%20the%20Design%20Phase.pdf http://www4.informatik.uni-erlangen.de/Publications/2007/spinczyk_07_knosys.pdf%7Cjournal=Knowledge-Based http://wwwx.cs.unc.edu/~lee/docs/pra03-colyer.pdf https://web.archive.org/web/20040730135825/http:/www.kerstens.org/mik/publications/aspectj-ecoop2002.pdf https://web.archive.org/web/20091013015127/http:/www.acs.org.au/documents/public/crpit/CRPITV10Spinczyk.pdf https://web.archive.org/web/20100924060437/http:/csg.is.titech.ac.jp/paper/yoshiki-gpce03.pdf%23%7Carchive-date=2010-09-24%7Curl-status=dead https://web.archive.org/web/20110722194353/http:/www.imamu.edu.sa/DContent/IT_Topics/Aspect%20Support%20in%20the%20Design%20Phase.pdf https://web.archive.org/web/20110825210934/http:/reference.kfupm.edu.sa/content/s/e/a_semantics_for_advice_and_dynamic_join__97028.pdf http://kerstens.org/mik/publications/aspectj-ecoop2002.pdf |
dbo:wikiPageID |
25674200 (xsd:integer) |
dbo:wikiPageLength |
20977 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID |
1054431997 (xsd:integer) |
dbo:wikiPageWikiLink |
dbr:Programmer dbr:Variable_(programming) dbr:Duplicate_code dbr:Preprocessor dbc:Programming_language_implementation dbr:Compiler dbr:Cross-cutting_concern dbr:Run_time_(program_lifecycle_phase) dbr:Object-oriented_programming dbr:Object_(computer_science) dbr:Toolchain dbr:Pointcut dbr:Function_(computer_science) dbr:Context_switch dbr:Identifier dbr:Static_variable dbr:C++ dbr:Join_point dbr:Just-in-time_compilation dbr:Advice_(programming) dbr:Source_code dbr:Java_(programming_language) dbr:AspectC++ dbr:AspectJ dbr:Association_for_Computing_Machinery dbr:Abstraction_layer dbc:Articles_with_example_Java_code dbc:Compiler_construction dbc:Aspect-oriented_programming dbr:Sun_Microsystems dbr:Code dbr:Modular_programming dbr:Aspect-oriented_programming dbc:Aspect-oriented_software_development dbr:Bytecode dbr:Plan dbr:Embedded_systems dbr:Metaprogramming dbr:Method_(computer_science) dbr:Virtual_machine dbr:IEEE_Software dbr:Programming_language dbr:Java_1.3 dbr:Java_1.4 dbr:Java_Virtual_Machine dbr:Modularity_(programming) dbr:Class_(computer_science) dbr:Aspect-oriented_language dbr:Aspect_(computer_science) dbr:Breakpoints dbr:Compile-time |
dbp:bot |
InternetArchiveBot (en) |
dbp:date |
July 2017 (en) |
dbp:fixAttempted |
yes (en) |
dbp:genre |
dbr:Aspect-oriented_programming |
dbp:language |
dbr:AspectC++ dbr:AspectJ |
dbp:logo |
AspectWeaver.svg (en) |
dbp:logoAlt |
Two classes and a single aspect are presented. The aspect weaver analyzes each class and combines the aspect into the implementation code. The result is two implementation classes with the aspect code present in appropriate, but distinct, places in each class. (en) |
dbp:logoCaption |
An aspect weaver takes information from raw classes and aspects and creates new classes with the aspect code appropriately weaved into the classes. (en) |
dbp:logoSize |
300 (xsd:integer) |
dbp:name |
Aspect weaver (en) |
dbp:wikiPageUsesTemplate |
dbt:Cite_book dbt:Cite_journal dbt:Dead_link dbt:Good_article dbt:Infobox_software dbt:Refbegin dbt:Refend dbt:Reflist dbt:Short_description dbt:Aosd |
dcterms:subject |
dbc:Programming_language_implementation dbc:Articles_with_example_Java_code dbc:Compiler_construction dbc:Aspect-oriented_programming dbc:Aspect-oriented_software_development |
gold:hypernym |
dbr:Utility |
rdf:type |
owl:Thing dbo:Software schema:CreativeWork dbo:Work wikidata:Q386724 wikidata:Q7397 yago:Abstraction100002137 yago:Code106355894 yago:CodingSystem106353757 yago:Communication100033020 yago:Writing106359877 yago:WrittenCommunication106349220 yago:Software106566077 |
rdfs:comment |
An aspect weaver is a metaprogramming utility for aspect-oriented languages designed to take instructions specified by aspects (isolated representations of significant concepts in a program) and generate the final implementation code. The weaver integrates aspects into the locations specified by the software as a pre-compilation step. By merging aspects and classes (representations of the structure of entities in the program), the weaver generates a woven class. (en) Le tissage est l'étape de la programmation orientée aspect qui a pour but d'insérer des bouts de codes appelés greffons (Advice) dans le code métier d'une application. Tisser un greffon dans une méthode revient à redéfinir la méthode comme la composition de son corps avec le greffon. Le tissage d'aspects au niveau de l'application est un mécanisme offrant l'extensibilité et l'adaptabilité, permettant ainsi à l'application de s'adapter facilement quand des nouveaux besoins font surface. (fr) |
rdfs:label |
Aspect weaver (en) Tissage dans la programmation orientée aspect (fr) |
owl:sameAs |
freebase:Aspect weaver yago-res:Aspect weaver wikidata:Aspect weaver dbpedia-fa:Aspect weaver dbpedia-fr:Aspect weaver https://global.dbpedia.org/id/3Fdte |
prov:wasDerivedFrom |
wikipedia-en:Aspect_weaver?oldid=1054431997&ns=0 |
foaf:depiction |
wiki-commons:Special:FilePath/AspectWeaver.svg |
foaf:isPrimaryTopicOf |
wikipedia-en:Aspect_weaver |
foaf:name |
Aspect weaver (en) |
is dbo:wikiPageWikiLink of |
dbr:Pointcut dbr:AspectJ dbr:Java_Classloader dbr:Aspect-oriented_programming dbr:Aspect_(computer_programming) dbr:Metaprogramming |
is foaf:primaryTopic of |
wikipedia-en:Aspect_weaver |