Object-Oriented Multi-Methods in Cecil
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Predicate Dispatching: A Unified Theory of Dispatch
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
The impact of software engineering research on modern progamming languages
ACM Transactions on Software Engineering and Methodology (TOSEM)
MultiJava: Design rationale, compiler implementation, and applications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient control flow quantification
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
A flexible architecture for pointcut-advice language implementations
Proceedings of the 1st workshop on Virtual machines and intermediate languages for emerging modularization mechanisms
The jastadd extensible java compiler
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
ConSpec -- A Formal Language for Policy Specification
Electronic Notes in Theoretical Computer Science (ENTCS)
Redundancy-free residual dispatch: using ordered binary decision diagrams for efficient dispatch
Proceedings of the 7th workshop on Foundations of aspect-oriented languages
Prototyping and Composing Aspect Languages
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Delegation-based semantics for modularizing crosscutting concerns
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Expressive and modular predicate dispatch for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Polyglot: an extensible compiler framework for Java
CC'03 Proceedings of the 12th international conference on Compiler construction
Supporting dynamic aspect-oriented features
ACM Transactions on Software Engineering and Methodology (TOSEM)
Optimizing the evaluation of patterns in pointcuts
Virtual Machines and Intermediate Languages
Making aspects natural: events and composition
Proceedings of the tenth international conference on Aspect-oriented software development
abc: an extensible AspectJ compiler
Transactions on Aspect-Oriented Software Development I
ALIA4J's [(just-in-time) compile-time] MOP for advanced dispatching
Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11, & VMIL'11
A fine-grained debugger for aspect-oriented programming
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
An object-oriented framework for aspect-oriented languages
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
Turbo DiSL: partial evaluation for high-level bytecode instrumentation
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
A fine-grained, customizable debugger for aspect-oriented programming
Transactions on Aspect-Oriented Software Development X
Hi-index | 0.00 |
New programming languages that allow to reduce the complexity of software solutions are frequently developed, often as extensions of existing languages. Many implementations thus resort to transforming the extension's source code to the imperative intermediate representation of the parent language. But approaches like compiler frameworks only allow for re-use of code transformations for syntactically-related languages; they do not allow for re-use across language families. In this paper, we present the ALIA4J approach to bring such re-use to language families with advanced dispatching mechanisms like pointcut-advice or predicate dispatching. ALIA4J introduces a meta-model of dispatching as a rich, extensible intermediate language. By implementing language constructs from four languages as refinements of this meta-model, we show that a significant amount of them can be re-used across language families. Another building block of ALIA4J is a framework for execution environments that automatically derives an execution model of the program's dispatching from representations in our intermediate language. This model enables different execution strategies for dispatching; we have validated this by implementing three execution environments whose strategies range from interpretation to optimizing code generation.