New programming languages are frequently designed to improve upon other languages or to simplify programs through domain-specific abstractions. They are often implemented as transformations to an established (intermediate) language (IL). But while many new languages overlap in the semantics of their core concepts, re-using the corresponding transformations is limited by existing compiler implementation frameworks. In the ALIA4J approach, we have identified dispatching as fundamental to most abstraction mechanisms and provide a meta-model of dispatching as a rich, extensible IL. Based on this meta-model, the semantics of new atomic language concepts can be implemented in a modular and portable fashion. For the execution of the IL, we provide both platform-independent and platform-dependent Java Virtual Machine extensions, the latter of which allows the modular implementation of machine code optimizations. In this demo, participants get an overview of advanced dispatching and the ALIA4J approach. By the example of a language for text-based adventure games, they will see the usage of ALIA4J as back-end for a language developed in a modern Language Workbench. Finally, the implementation of new atomic language concepts and their optimization is demonstrated.
|Publication status||Published - 2012|
|Event||3rd Annual Conference on Systems, Programming, and Applications, SPLASH 2012: Software for Humanity - Tucson, United States|
Duration: 19 Oct 2012 → 26 Oct 2012
Conference number: 3
|Conference||3rd Annual Conference on Systems, Programming, and Applications, SPLASH 2012|
|Period||19/10/12 → 26/10/12|