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 (http://www.kluweronline.com/journals/hosc).
References
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.
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