I Brazilian Conference on Software: Theory and Practice

Tutorial 1

Efficient Implementation of Efficient (Domain-Specific) Languages

A pre-installed Linux for use during the hands-on sessions will be provided during the tutorial as Live Linux DVD. This will include a development environment with an appropriately configured workspace containing all ALIA4J subprojects as well as skeleton implementations of the language prototype that will be developed in this tutorial.


photo-ChristophBockisch.jpg

Christoph Bockisch, University of Twente (instructor)

photo-MehmetAksit.jpg

Mehmet Aksit, University of Twente

photo-AndreasSewe.jpg

Andreas Sewe,Technische Universit�t Darmstadt

photo-MiraMezini.jpg

Mira Mezini, Technische Universit�t Darmstadt

Tuesday, September 28, 2010 (14:00-17:30)

Abstract:
New programming languages are designed frequently, mostly in order to improve qualities of general-purpose languages or to simplify programs by providing domain-specific abstractions. Many such languages can be expressed as a dispatching problem as we have shown for predicate dispatching, pointcut-advice, inter-type member declarations, policy enforcement, and a domain-specific language extension enforcing the Decorator pattern.

For languages based on Java, the Advanced-dispatching Language Implementation Architecture (ALIA4J) provides both an extensible dispatch-declaration meta-model and an execution model. Furthermore, we provide multiple execution environments conforming to this model: a portable implementation performing bytecode optimization (SiRIn), a virtual-machine-integrated implementation applying dynamic native-code optimization (Steamloom^ALIA), etc. In all cases the execution semantics for atomic language concepts have been implemented modularly in ALIA4J in terms of plain-old Java. Moreover, bytecode-level and dynamic native-code-level optimizations are implemented modularly as well. Overall, ALIA4J contains more than 75 re-usable language concepts, the majority of which offers at least bytecode-level optimizations.

In this tutorial, you will not only learn the concepts behind ALIA4J but also develop a domain-specific extension to Java yourself, including optimizations. Hereby, our extension to the Eclipse debugger will help you developing and debugging the language's implementation, whose performance you will then evaluate using ALIA4J's micro-benchmarking framework.

Authors:

  • Christoph Bockisch is an assistant professor on Software Composition with a research focus on the design and implementation of programming languages with advanced-dispatching mechanisms. He received his doctoral degree from the Technische Universit�t Darmstadt in 2008. Christoph is one of two project supervisors and lead programmers of the ALIA4J project, which comprises the Steamloom^ALIA virtual machine, the successor of Steamloom. He authored and co-authored several papers about compilation techniques and virtual machine support for aspect-oriented programming languages, published amongst others by the OOPSLA, AOSD, ECOOP, ISSRE, and VEE conferences. To provide virtual machine support, Christoph researches extensions to high-performing Java virtual machines based on just-in-time compilation, and meta-models for the definition of arbitrary dispatching mechanisms to act as a first-class representation. Complementary fields of research comprise the design of composition mechanisms in programming languages, model checking of aspect-oriented programs and runtime verification implemented by means of aspect-orientation. Christoph is co-founder and co-chair of the VMIL workshop 2007--2010, he is program co-chair of the AOSD-Europe Summer School 2009 and 2011, and member of the tutorials committee of the Brazilian Conference on Software: Theory and Practice. He was reviewer for the TAOSD, TSE and MODELS journal, member of the program committee of the ODAL workshop 2006, and supporting reviewer for the conferences Compiler Construction, AOSD, and ECOOP and for the TOSEM journal. Christoph was and continues to be involved in teaching courses to graduate students about aspect-oriented software development, concepts of programming languages and virtual machines. He gave invited lectures on the topic of programming languages and their implementation in the European master program EMOOSE in 2006 and 2007, as well as the European Summer School on Aspect-Oriented Software Development 2009.

  • Mehmet Aksit holds an M.Sc. degree from the Eindhoven University of Technology and a Ph.D. degree from the University of Twente. Currently, he is working as a full professor at the Department of Computer Science, University of Twente. His research interests have a focus on programming languages, specifically, the Composition Filters programming model and the Compose* language have been developed at his chair. Mehmet Aksit has served many conferences and symposia. For example, he was the program (co) chair of ECOOP'97, SACT'00, HQSAD'00, NoD'02 and AOSD'03. He was the tutorial chair of the ECOOP'92 conference and the organizing chair of the AOSD'02 conference. He has been also serving as a program-committee member of many international conferences and as a reviewer of several journals. He is the co-founder and has been the co-editor in chief of Transactions on Aspect-Oriented Software Development (published by Springer-Verlag) until March 2007. He has given numerous invited presentations and keynote talks. Examples in 2008 are keynote talks in Software Composition conference in Budapest, Aspect-Oriented Modeling workshop in Brussels, Informatics conference in Turkey, Software Quality and Tools Conference in Turkey, System Integration Conference in Brazil. Since 1990, he has given more than 110 international and in-company courses and conference tutorials. He was working for Oce Nederland 1981--1982 and 1983--1987. After moving to the University of Twente in 1987, he has been involved in many practical projects and designed various large-scale software architectures, some of which are currently being utilized in products. Some of the research tools developed by the chair are now being used in industrial applications.

  • Andreas Sewe received a Diplom Degree in Mathematics from Technische Universit�t Darmstadt in 2007 and thereafter became a PhD candidate in Computer Science. His current research, conducted at the Center for Advanced Security Research Darmstadt (CASED), focuses on virtual machine support for advanced-dispatching mechanisms, runtime monitoring, and policy enforcement. His research results have been published at the FOAL and VMIL workshops, as well as in the IJICS journal. Andreas is the second project supervisor and lead programmer of the ALIA4J Project, where he developed SiRIn, the project's highly portable reference implementation. Andreas was a member of the program committee for the VMIL workshop, a reviewer for the PMC journal, as well as a supporting reviewer for the AOSD, FSE, and SBES conferences. He was the local organizer of the 3rd European Summer School on Aspect-Oriented Software Development, and is involved with teaching courses on both the concepts of programming languages and virtual machines.

  • Mira Mezini holds a Diploma in Computer Science from the University of Tirana, Albania, and a Ph.D. degree from the University of Siegen, Germany. At the moment, she is a full professor on Software Technology at the Technische Universit�t Darmstadt, Germany. She has worked as an assistant professor of Computer Science at the College of Computer Science, Northeastern University, U.S.A., and at the University of Siegen. She has been in the program committee of multiple conferences, such as the ECOOP ('01--'04, '06), Compiler Construction'07, Reflection'01, AOSD ('02--'04, '06, '07), CD'02, OOPSLA ('02, '04); she is the active chair of the steering committee of the AOSD and is member of ECOOP's steering committee, was local organizer of the ECOOP'03, program co-chair of the Net.Object Days'02, and she co-chaired and served on the program committee of several workshops. Her research interests are developing methods and tools that support programmers in writing software that has a clear modular structure reflecting a clear separation of concerns. Most of her research has been in programming language design and implementation. Her research results are published in the proceedings of conferences like OOPSLA, ECOOP, AOSD, VEE, ASE, ICSE, or WCRE, and journals like Science of Computer Programming, L'Objet, or the International Journal of Information and Computer Security. Mira Mezini is teaching courses amongst others on programming languages, software design and architectures since 1989. At her chair, the CaesarJ language has been developed which has been multiply used also in industrial contexts and which has been presented in several tutorials at different occasions.