{"title":"ALIA4J's [(just-in-time) compile-time] MOP for advanced dispatching","authors":"Christoph Bockisch, Andreas Sewe, Martin Zandberg","doi":"10.1145/2095050.2095101","DOIUrl":null,"url":null,"abstract":"The ALIA4J approach provides a framework for implementing execution environments with support for advanced dispatching as found, e.g., in aspect-oriented or predicate-dispatching languages. It also defines an extensible meta-model acting as intermediate representation for dispatching declarations, e.g., pointcut-advice or predicate methods. From the intermediate representation of all dispatch declarations in the program the framework derives an execution model for which ALIA4J specifies a generic execution strategy. The meta-object protocol (MOP) formed by the meta-model and framework is defined such that new programming language concepts can be implemented modularly: The semantics can be implemented in an interpretative style (e.g., using reflection) or by describing how to generate corresponding Java bytecode or even machine code. In the latter two cases, the implementation can reason about the current code generation context; this enables sophisticated optimizations. We discuss these optimization facilities by means of two case studies.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"SPLASH Workshops","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2095050.2095101","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 4
Abstract
The ALIA4J approach provides a framework for implementing execution environments with support for advanced dispatching as found, e.g., in aspect-oriented or predicate-dispatching languages. It also defines an extensible meta-model acting as intermediate representation for dispatching declarations, e.g., pointcut-advice or predicate methods. From the intermediate representation of all dispatch declarations in the program the framework derives an execution model for which ALIA4J specifies a generic execution strategy. The meta-object protocol (MOP) formed by the meta-model and framework is defined such that new programming language concepts can be implemented modularly: The semantics can be implemented in an interpretative style (e.g., using reflection) or by describing how to generate corresponding Java bytecode or even machine code. In the latter two cases, the implementation can reason about the current code generation context; this enables sophisticated optimizations. We discuss these optimization facilities by means of two case studies.