9:00 - 10:30 | Exectable
UML: A Foundation for Model-Driven Archtitecture (Part 1)
From a Program Family to a Domain-Specific Language (Part 1) Multi-stage Programming in MetaOCaml (Part 1) |
10:30 - 11:00 | Coffee break |
11:00 - 12:30 | Exectable
UML: A Foundation for Model-Driven Archtitecture (Part 2)
From a Program Family to a Domain-Specific Language (Part 2) Multi-stage Programming in MetaOCaml (Part 2) |
12:30 - 13:30 | Lunch |
13:30 - 15:00 | Generative Programming
(Part 1)
Domain-Specific Languages and Generators for Model-Driven Development (Part 1) |
15:00 - 15:30 | Coffee break |
15:30 - 17:00 | Generative Programming
(Part 2)
Domain-Specific Languages and Generators for Model-Driven Development (Part 2) |
10:15 - 11:45 | Model-Driven Architecture Distilled (Part 1) |
11:45 - 12:00 | Coffee break |
12:00 - 13:30 | Model-Driven Architecture Distilled (Part 2) |
13:30 - 14:30 | Lunch |
Level: Between introductory and intermediate
Required experience: Programming experience and basic notations in programming languages.
Expected audience: Participants working in domains where developed programs share a
lot of commonalities.
Expected benefits: more concise, more robust, easier program development.
Charles Consel is a professor of Computer Science at
ENSEIRB/University of Bordeaux I. He leads the Compose group at
INRIA/LaBRI. He has been designing and implementing domain-specific languages (DSLs) for a variety of areas including device drivers,
programmable routers, and stream processing. These DSLs have been validated with real-sized applications and showed measurable benefits
compared to applications written in general-purpose languages. His research interests include language design, program analysis,
compilation and compiler generation, prototyping, program transformation, and formal specification.
Claus Brabrand received his PhD in computer science from the BRICS Research Center at the University of Aarhus, Denmark, 2003. He is
currently a research scientist at INRIA and the University of Bordeaux INRIA/LaBRI. Areas of interest and research include: domain specific languages,
general purpose languages, program analysis, compilers, and Web technology.
Multi-stage programming is a new paradigm for developing generic programs that do not pay a runtime overhead. The key underlying technology is program generation. In addition, languages designed to support this paradigm (such as MetaOCaml) help the programmer avoid many of the difficulties that are traditionally encountered in developing program generators. This tutorial will introduce you to the basics of this paradigm as well as of programming in MetaOCaml. Numerous examples will be used to illustrate the practice of multi-stage programming.
Level: The tutorial level is introductory (requires almost no experience with any specific programming language.)
Required experience: Familiarity with a functional language, or generic typing, would be useful, but is not necessary.
Expected audience: Software engineers, graduate and undergraduate students, researchers.
Attendees will gain understanding of a high-level model of program generation
Walid Taha is an Assistant Professor at Rice University, USA. He
played a lead role in development of both the multi-stage programming paradigm and the MetaOCaml implementation.
Cristiano Calcagno is a Researcher at Queen Mary University, UK. He has made significant contributions to the theory of multi-stage programming, and is the main developer of the
MetaOCaml system.
Level: Intermediate
Required Experience: Being able to read Java and C++ code would be helpful (but not required)
Expected audience: This tutorial is aimed at researchers and practitioners interested
in modeling and implementation technologies to achieve reusability and to automate application engineering.
Krzysztof Czarnecki is an Assistant Professor at the University of Waterloo, Canada. Before coming to Waterloo, he spent 8 years at DaimlerChrysler Research working on the practical applications of generative programming (GP). Together with Ulrich Eisenecker, he co-authored the book "Generative Programming" (Addison-Wesley, 2000). His current research focuses on realizing the synergies between GP and MDA.
Ulrich W. Eisenecker is a professor for computer science at the University of Applied Sciences Kaiserslautern, Zweibruecken, where he directs the Institute of Componentware and Window-Interfaces. He has been working on generative programming for more than five years and is responsible for several projects in generative programming research funded by industry and public institutes.
Simon Helsen is a Postdoctoral Research Fellow at the University of Waterloo, where he recently joined Krzysztof Czarnecki. His current research focusses on the applicability and viability of MDA in the context of Generative Programming. Before coming to Waterloo, he was a research assistant at the Universities of Tübingen and Freiburg where he worked with Peter Thiemann on program specialization and partial evaluation.
Level: Intermediate
Required experience: Attendees should have significant software development experience, not
necessarily OO, must have used at least one methodology and design/generation tool.
Expected audience: This tutorial is for experienced developers, architects, team leaders, and
those responsible for developing or selecting a methodology for their software product development.
Juha-Pekka Tolvanen is the CEO of MetaCase Consulting. He received his Ph.D. in 1998 from the University of Jyväskylä, Finland. His area of expertise is in engineering of software development methods for application-specific needs. In this role, Mr. Tolvanen has acted as a consultant worldwide for method development and he has published papers on software development methods in several journals and conferences (www.cs.jyu.fi/~jpt). Mr Tolvanen has good presentation skills and experience on organizing workshops and tutorials. Reference information and third-party feedback reports from past presentations are available upon request.