GPCE Invited Talks


A Journey from Interpreters to Compilers and Virtual Machines

Olivier Danvy (BRICS, University of Aarhus)

We review a simple sequence of steps to stage a programming-language interpreter into a compiler and virtual machine. We illustrate the applicability of this derivation with a number of existing virtual machines, mostly for functional languages. We then outline its relevance for today's language development [5].

The work is joint with Mads Sig Ager, Dariusz Biernacki, and Jan Midtgaard [1-4].

Olivier Danvy is an Associate Professor at the Department of Computer Science at the University of Aarhus, in Denmark. He obtained his Ph.D. degree in 1986 and his Habilitation in 1993 from the Université Pierre et Marie Curie (Paris VI), France. His research interests are Programming Languages in general, and Partial Evaluation and Continuations in particular. He is currently serving as co-Editor-in-Chief of the journal Higher-Order and Symbolic Computation (


1. Mads Sig Ager, Dariusz Biernacki, Olivier Danvy, and Jan Midtgaard. From interpreter to compiler and virtual machine: a functional derivation. Technical Report BRICS RS-03-14, DAIMI, Department of Computer Science, University of Aarhus, Aarhus, Denmark, March 2003.

2. Mads Sig Ager, Dariusz Biernacki, Olivier Danvy, and Jan Midtgaard. A functional correspondence between evaluators and abstract machines. Technical Report BRICS RS-03-13, DAIMI, Department of Computer Science, University of Aarhus, Aarhus, Denmark, March 2003. Accepted for presentation at PPDP 2003.

3. Mads Sig Ager, Olivier Danvy, and Jan Midtgaard. A functional correspondence between call-by-need evaluators and lazy abstract machines. Technical Report BRICS RS-03-24, DAIMI, Department of Computer Science, University of Aarhus, Aarhus, Denmark, June 2003. 

4. Dariusz Biernacki and Olivier Danvy. From interpreter to logic engine: A functional derivation. Technical Report BRICS RS-03-25, DAIMI, Department of Computer Science, University of Aarhus, Aarhus, Denmark, June 2003. Accepted for presentation at LOPSTR 2003.

5. Charles Consel and Renaud Marlet. Architecturing software using a methodology for language development. In Catuscia Palamidessi, Hugh Glaser, and Karl Meinke, editors, Tenth International Symposium on Programming Language Implementation and Logic Programming, number 1490 in Lecture Notes in Computer Science, pages 170-194, Pisa, Italy, September 1998. Springer-Verlag.


Towards a More Piece-ful World

Peri Tarr (IBM Thomas J. Watson Research Center)

We envision a world in which we can develop, synthesize, adapt, integrate, and evolve software based on high-quality, perpetually flexible pieces. New pieces may be produced by generation, adaptation of existing pieces, or integration of pieces, and this process of "pieceware" engineering continues--statically or dynamically--until a piece with the desired capabilities and properties is synthesized. The pieces themselves may comprise fragments of requirements, models, architectures, patterns, designs, code, tests, and/or any other relevant software artifacts. Many technologies are critical to achieving pieceware engineering; some have been developed in this community and elsewhere, and others are still required.

Despite the progress in this field, we have encountered two major problems along the way towards realizing the pieceware vision. First, what paradigms, technologies, and methodologies are required to enable full-lifecycle pieceware engineering? Second, how do we provide the necessary tool support?

Our inability to address the second problem has seriously compromised our ability to address the first. The development of tools to realize different pieceware engineering approaches represents a huge investment of time and effort. This is largely because each one must be built from scratch or from low-level abstractions. Consequently, the tools themselves represent isolated point solutions, and rarely have any ability to interoperate or be integrated. This has impeded the development and validation of full-lifecycle pieceware engineering paradigms, technologies, and methodologies.

The Concern Manipulation Environment (CME) represents the first effort to define an open, extensible set of components and abstractions to promote the rapid development and integration of tools that support pieceware engineering. The initial focus is on tools for aspect-oriented software development (AOSD), an emerging technology area that is key to pieceware engineering. This talk describes the pieceware engineering vision, the major issues to be addressed, and the technologies required to achieve it. It then discusses how the CME helps to address many of these issues--illustrated by the use of the CME to enable the evolution of a real-world system--and how it can be leveraged by researchers and developers to produce, experiment with, validate, and integrate new pieceware techologies and paradigms. Finally, we identify some of the key challenges remaining to achieve the vision of pieceware engineering.

Peri Tarr is a researcher in the Pieceware group at the IBM Thomas J. Watson Research Center. She received the PhD from the University of Massachusetts in 1996. She co-invented multi-dimensional separation of concerns (MDSOC), a seminal AOSD approach; led the tool development effort to realize MDSOC for Java(tm) (Hyper/J(tm)); and co-invented the Concern Manipulation Environment (CME). Her research interests include the development of novel paradigms and technologies to reduce the complexity and increase the quality of software, and towards this goal, she now works on various parts of the pieceware puzzle. She has served on numerous major conference and program committees, including ICSE, OOPSLA, ICDCS, and AOSD, and is Program Chair for AOSD 2005.


NetObjectDays Keynotes

The following NetObjectDays Keynotes are related to GPCE topics.


Complete Concurrent Specification Using UML

Stephen J. Mellor (Project Technology, Inc.)


Software Product-Line Engineering

David Weiss - Avaya Labs Research