{"title":"一个实用的单向面编织器","authors":"Ismael Figueroa, É. Tanter, Nicolas Tabareau","doi":"10.1145/2162010.2162018","DOIUrl":null,"url":null,"abstract":"We present Monascheme, an extensible aspect-oriented programming language based on monadic aspect weaving. Extensions to the aspect language are defined as monads, enabling easy, simple and modular prototyping. The language is implemented as an embedded language in Racket. We illustrate the approach with an execution level monad and a level-aware exception transformer. Semantic variations can be obtained through monad combinations. This work is also a first step towards a framework for controlling aspects with monads in the pointcut and advice model of AOP.","PeriodicalId":245301,"journal":{"name":"Workshop on Foundations of Aspect-Oriented Languages","volume":"41 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2012-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"10","resultStr":"{\"title\":\"A practical monadic aspect weaver\",\"authors\":\"Ismael Figueroa, É. Tanter, Nicolas Tabareau\",\"doi\":\"10.1145/2162010.2162018\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"We present Monascheme, an extensible aspect-oriented programming language based on monadic aspect weaving. Extensions to the aspect language are defined as monads, enabling easy, simple and modular prototyping. The language is implemented as an embedded language in Racket. We illustrate the approach with an execution level monad and a level-aware exception transformer. Semantic variations can be obtained through monad combinations. This work is also a first step towards a framework for controlling aspects with monads in the pointcut and advice model of AOP.\",\"PeriodicalId\":245301,\"journal\":{\"name\":\"Workshop on Foundations of Aspect-Oriented Languages\",\"volume\":\"41 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2012-03-26\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"10\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Workshop on Foundations of Aspect-Oriented Languages\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/2162010.2162018\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Workshop on Foundations of Aspect-Oriented Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2162010.2162018","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
We present Monascheme, an extensible aspect-oriented programming language based on monadic aspect weaving. Extensions to the aspect language are defined as monads, enabling easy, simple and modular prototyping. The language is implemented as an embedded language in Racket. We illustrate the approach with an execution level monad and a level-aware exception transformer. Semantic variations can be obtained through monad combinations. This work is also a first step towards a framework for controlling aspects with monads in the pointcut and advice model of AOP.