Seventh Workshop on Domain-Specific Aspect Languages

Note: Workshop date changed to TUESDAY 27th

Program

  • 9:00 - 9:15 Welcome by Johan Fabry
  • 10:30 - 11:00 COFFEE BREAK
  • Second session, chaired by Tom Dinkelaker
  • 11:00 - 11:30 “SPECTACKLE : Toward a Specification-Based DSAL Composition Process” by David Lorenz and Oren Mishali. Presentation Slides Available
  • 11:30 - 12:00 “LLDSAL: A Low-Level Domain-Specific Assembly Language for Dynamic Code-Generation and Program Modification” by Mathias Payer, Boris Bluntschli and Thomas Gross. Presentation Slides Available
  • 12:00 - 12:30 “Towards an Aspect-oriented Language Module: Aspects for Petri Nets” by Tim Molderez, Bart Meyers, Dirk Janssens and Hans Vangheluwe. Presentation Slides Available
  • 12:30 - 14:00 LUNCH
  • 15:30 - 16:00 COFFEE BREAK
  • 16:00 - 17:00 Discussion on the theme: “Composing DSALs, theory vs. practice”

Abstracts

Language-Oriented Modularity through Awesome DSALs

Presenter: David Lorenz

In this talk we coin the term language-oriented modularity to refer to the process of constructing and composing DSALs to better support aspect-oriented modularity. Language-oriented modularity aims at keeping our aspect language as abstract as possible and our software code as modular as possible. While general purpose aspect-oriented languages offer low-level abstractions for modularizing a wide range of crosscutting concerns, they lack the modularity abstractions to tackle all cases of crosscutting. With language-oriented modularity, a solution to unanticipated crosscutting concerns is to construct and combine multiple DSALs to form aspect-oriented modularity of new kinds. We evaluate the AWESOME composition framework in terms of its support for language-oriented modularity.

DiSL: An Extensible Language for Efficient and Comprehensive Dynamic Program Analysis

Presenters: Lukas Marek, Danilo Ansaloni, and Walter Binder

Dynamic program analysis tools support numerous software engineering tasks, including profiling, debugging, and reverse engineering. Prevailing techniques for building dynamic analysis tools are based on low-level abstractions that make tool development tedious, error-prone, and expensive. To simplify the development of dynamic analysis tools, some researchers promoted the use of aspect-oriented programming (AOP). However, as mainstream AOP languages have not been designed to meet the requirements of dynamic analysis, the success of using AOP in this context remains limited. For example, in AspectJ, join points that are important for dynamic program analysis (e.g., the execution of bytecodes or basic blocks of code) are missing, access to reflective dynamic join point information is expensive, data passing between woven advice in local variables is not supported, and the mixing of low-level bytecode instrumentation and high-level AOP code is not foreseen. In this talk, we present DiSL, a new domain-specific aspect language for bytecode instrumentation. DiSL uses Java annotation syntax such that standard Java compilers can be used for compiling DiSL code. The language features an open join point model, novel constructs inspired by weave-time evaluation of conditional join points and by staged execution, and access to custom static and dynamic context information. Moreover, the DiSL weaver guarantees complete bytecode coverage. We have implemented several dynamic analysis tools in DiSL, including profilers for the inter- and intra-procedural control flow, debuggers, dynamic metrics collectors integrated in the Eclipse IDE to augment the static source views with dynamic information, and tools for workload characterization. These tools are concise and perform equally well as implementations using low-level techniques. DiSL has also been conceived as an intermediate language for future domain-specific analysis languages, as well as for AOP languages.

2012/program.txt · Last modified: 2012/04/09 11:43 by Johan Fabry