{"title":"Symmetric aspect-orientation: some practical consequences","authors":"Jaroslav Bálik, V. Vranić","doi":"10.1145/2162004.2162007","DOIUrl":null,"url":null,"abstract":"To some extent, contemporary software development has incorporated the AspectJ style of aspect-oriented programming. This style is denoted as asymmetric since it explicitly distinguishes between aspects and the base. Although academic symmetric aspect-oriented approaches, in which there is no such distinction, gained no direct acceptance in industry, several approaches used in practice exhibit symmetric aspect-oriented features. As shown in this paper, this ranges from peer use cases and features as analysis and design concepts to particular programming language mechanisms such as traits (Scala), open classes (Ruby), or prototypes (JavaScript). Even inter-type declarations and advices as known from AspectJ can be used to emulate symmetric aspect-oriented programming. The examples given in this paper indicate the basic possibilities for this. However, detailed studies of the corresponding academic and industry approaches should be carried.","PeriodicalId":244958,"journal":{"name":"NEMARA '12","volume":"12 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2012-03-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"16","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"NEMARA '12","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2162004.2162007","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 16
Abstract
To some extent, contemporary software development has incorporated the AspectJ style of aspect-oriented programming. This style is denoted as asymmetric since it explicitly distinguishes between aspects and the base. Although academic symmetric aspect-oriented approaches, in which there is no such distinction, gained no direct acceptance in industry, several approaches used in practice exhibit symmetric aspect-oriented features. As shown in this paper, this ranges from peer use cases and features as analysis and design concepts to particular programming language mechanisms such as traits (Scala), open classes (Ruby), or prototypes (JavaScript). Even inter-type declarations and advices as known from AspectJ can be used to emulate symmetric aspect-oriented programming. The examples given in this paper indicate the basic possibilities for this. However, detailed studies of the corresponding academic and industry approaches should be carried.