ECOOP2002 Workshop on Generative Programming
held on June 10, 2002, at the
16th European Conference on Object-Oriented Programming, University of Málaga, Spain, June 10-14, 2002Abstract
Object-oriented technology indisputably provided us with a better handle on complexity than previous technologies. Nevertheless, several issues remain and generative techniques - automated generation of software artifacts - may help us address them. Such issues include the performance and complexity overheads of highly flexible OO designs, and the inability to implement aspectual or even more abstract features such as performance properties in a localized and modular way.
The workshop aimed to bring together practitioners, researchers, academics, and students to discuss the state-of-the-art of generative techniques and their role in object-oriented development. The goal was to share experience, assess the state-of-the-art and the state-of-the-practice, consolidate successful techniques, and identify the most promising application areas and open issues for future work. Topics of interest included
Potential participants were asked to submit a two-page (or longer) position paper detailing their experience with generative techniques, their perspective on one or more of the above topics, and their planned contribution to the workshop. We were looking for concrete case studies and potential topics of discussion in order to ground the workshop in real-world issues. Participants were expected to read all accepted position papers before the workshop. The workshop had 21 participants.
Motivation
Object-oriented technology indisputably provided us with a better handle on complexity than previous technologies. However, several problem areas still exist and generative techniques may help us to address them; in particular, they can help us to
Generative technology has been in practical use for decades (e.g., compiler development). However, developing new domain-specific languages (DSLs), application generators, and component generators has been extremely hard, requiring being knowledgeable and experienced both in language design and compiler development. Recent developments such as XML technologies and template metaprogramming revived the interest in generative techniques by making these techniques more accessible to developers.
Position papers
(
download all papers as a zip archive)(
download all presentations as a zip archive)Schedule
|
9:30 9:40 |
|
|
9:40 10:00 |
Invited talk Overview of OpenJava and OpenC++ ( presentation)Shigeru Chiba, Tokyo Institute of Technology, Japan |
|
10:00 10:15 |
Replacing Generation of Interpreters with a Combination of Partial Evaluation and Parameterized Signatures, Leading to a Concept for Meta-Bootstrapping ( paper)Philipp W. Kutter |
|
10:15 10:30 |
Capturing and using emergent knowledge by keyword based programming ( presentation and paper)T. Cleenewerck, K. Hendrickx, E. Duval and H. Olivié |
|
10:30 10:45 |
Refill - a generative java dialect ( presentation and paper)Kasper Østerbye |
|
10:45 11:00 |
Code-Generation Aspects of Jasper, a Reflective Meta-Programming and Source Transformations Processor ( presentation and paper)Dmitry Nizhegorodov |
|
11.00 11.15 |
Coffee break |
|
11:15 11:30 |
Generative development of embedded real-time systems ( presentation and paper)Gerd Frick Klaus D. Müller-Glaser |
|
11:30 11:45 |
GOO: a Generative Object-Oriented Language ( paper)Ulrik P. Schultz |
|
11:45 12:00 |
Generating User Interfaces by means of Declarative Meta Programming ( presentation and paper)Sofie Goderis and Wolfgang De Meuter |
|
12:00 12:15 |
Jostraca: a template engine for generative programming ( presentation and paper)Richard J. Rodger |
|
12:15 12:30 |
Integrating Code Generation and Refactoring ( presentation and paper)Marcelo d'Amorim, Clovis Nogueira, Gustavo Santos, Adeline Souza, and Paulo Borba |
|
12:30 12:45 |
Generative Programming Using Two-Level Grammar in UniFrame ( presentation and paper)Barrett R. Bryant, Fei Cao, Wei Zhao, Rajeev R. Raje, Mikhail Auguston, Andrew M. Olson, Carol C. Burt |
|
12:45 13:00 |
AspectS Aspects in Squeak ( presentation and paper)Robert Hirschfeld |
|
13:00 13:15 |
Runtime Code Generation for Bytecode Specialization of Reflective Java Programs ( presentation and paper)Susumu Yamazaki and Etsuya Shibayama |
|
13.15 14.30 |
Lunch |
|
14:30 14:50 |
Invited talk Collaboration In the Generative Programming Universe ( presentation)Joost Visser, CWI, Netherlands |
|
14:50 16:00 |
Paper discussion (10 minutes per paper) |
|
16.00 16.30 |
Coffee break |
|
16:30 17:20 |
Paper discussion (10 minutes per paper) |
|
17:20 18:00 |
General discussion and closing |
Preparation Instructions for The Workshop
The pro-and-contra session in the afternoon will include a 10 minute debate on each paper. We will need two volunteers per paper, one playing the proponent role and one playing the opponent role. You can think of this session as a kind of game and the roles are just roles to be played...
During each 10 minute pro-and-contra debate, the proponent and the opponent will give a two minute opening statement each and then they will exchange their pro and contra arguments on the approach presented in the paper being debated. If any of the volunteers runs out of arguments, he or she may ask the audience for some additional arguments. The debate will be closed by each of the volunteers by making constructive suggestions about how to improve the paper and/or which direction to explore in future work.
For that reason, we would like to ask all participants to read the position papers in advance and try to decide a pro or contra position on each paper. Please mail your preference for which paper you would like to play the proponent or the opponent role to
czarnecki@acm.org, and we will try to accommodate your preference in advance. In any case, we will need to make the final assignment at the end of the presentation session. One remark on the contra role: This is definitely the role that puts you into the position to spark interesting discussions!Please note that we will not be able to provide you with a printed copy of the papers at the workshop, so you should consider bringing you own printed copies or an electronic version on your laptop to the workshop.
In any case, in order to get most out of the workshop, all participants are expected to read all the papers in advance. During the 15 minute presentations, there is only enough time to present the main points of the paper. Presuming that you've read the papers, this should be enough.
Post-workshop activities
The results of the workshop will be summarized in a workshop report to be published in the ECOOP workshop reader. The workshop report (with an appropriate copyright notice) and the position papers will be available form the workshop website after the workshop. The results will be also advertised at the webpage and mailing list of the working group on Generative and Component-Based Software Engineering of the German Computer Association (GI).
Past Related Workshops
OOPSLA01 Workshop on Generative Programming (Tampa, 2001)
ECOOP01 Workshop on Generative Programming (Budapest, 2001)
ICSE01 Workshop on Generative Techniques for Product Lines (Toronto, 2001)
SPCL1 Workshop on Generative Techniques for Product Lines (Denver, 2000)
Related Events
First ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering (GPCE'02)
Organizers
Krzysztof Czarnecki, DaimlerChrysler Research and Technology, Germany
Gregory Butler, Concordia University, Canada
Kasper Østerbye, IT University Copenhagen, Denmark
Lutz Roeder, Microsoft Corporation, USA
Bedir Tekinerdoğan, University of Twente, The Netherlands
Markus Völter, MATHEMA AG, Germany
Biographies of the Organizers
Krzysztof Czarnecki is a researcher and consultant with the Software Technology Lab at DaimlerChrysler Research in Ulm, where he has been working on Generative Programming and its industrial application for over five years. He co-chaired the First International Symposium on Generative and Component-Based Software Engineering (GCSE99) and is one of the founding members of the working group on "Generative and Component-Based Software Engineering" within the "Gesellschaft für Informatik". He co-organized workshops on generative techniques at SPLC1, ECOOP01, and OOPSLA01, and co-authored the book "Generative Programming: Methods, Tools, and Applications" (Addison-Wesley, 2000).
Greg Butler is a Professor of Computer Science at Concordia University, Montreal. He works on frameworks and leads the Know-It-All project developing a framework for database management systems and investigating methodologies for framework development and evolution. He has participated in many workshops at OOPSLA and WISR, been on programme committees and local organization committees, and facilitated the same workshop at the First Software Product Line Conference.
Kasper Østerbye, IT University Copenhagen, Denmark, has worked with program understanding through programming language constructs and software documentation based on hypertext. Currently he is working on extensible languages, especially extensible syntax and static semantics.
Lutz Roeder, Microsoft Corporation, Redmond, USA, works on next generation component-based technologies. His main interests include extensible languages, active source and visual programming environments.
Bedir Tekinerdoğan he is a post-doc at the University of Twente, The Netherlands, and does research on domain engineering, synthesis-based design, software architecture design and automated software engineer
ing. He was co-organizer of the ECOOP'96 workshop on Adaptability in Object-Oriented Software Development (30 participants), the ECOOP'97 first workshop on Aspect-Oriented Programming (28 participants), The ECOOP'98 Automating the Object-Oriented Software Development Process (16 participants) , the ECOOP'98 workshop on Aspect-Oriented Programming (>35 participants), and the ECOOP 2001 workshop on Automating Object-Oriented Software Development Methods.Markus Völter works as a software engineer and consultant for MATHEMA AG, Germany, where he also manages their Ulm office. His main interests include distributed systems, component technologies and patterns. Markus has published several papers in this area and he's a regular speaker at the respective conferences.