Mapping software architectures to efficient implementations via partial evaluation
- 22 November 2002
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 183-192
- https://doi.org/10.1109/ase.1997.632838
Abstract
Flexibility is recognized as a key feature in structuring software, and many architectures have been designed to that effect. However, they often come with performance and code size overhead, resulting in a flexibility vs. efficiency dilemma. The source of inefficiency in software architectures can be identified in the data and control integration of components, because flexibility is present not only at the design level but also in the implementation. We propose the use of program specialization in software engineering as a systematic way to improve performance and in some cases, to reduce program size. In particular, we advocate the use of partial evaluation, which is an automatic technique to produce efficient, specialized instances of generic programs. We study several representative, flexible mechanisms found in software architectures: selective broadcast, pattern matching, interpreters, layers, and generic libraries. We show how partial evaluation can systematically be applied in order to optimize those mechanisms.Keywords
This publication has 15 references indexed in Scilit:
- Quaject composition in the Synthesis kernelPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Declarative specialization of object-oriented programsPublished by Association for Computing Machinery (ACM) ,1997
- A general approach for run-time specialization and its application to CPublished by Association for Computing Machinery (ACM) ,1996
- Scalable software librariesPublished by Association for Computing Machinery (ACM) ,1993
- Parameterized partial evaluationACM Transactions on Programming Languages and Systems, 1993
- Using tool abstraction to compose systemsComputer, 1992
- Essence of generalized partial computationTheoretical Computer Science, 1991
- Static and dynamic semantics processingPublished by Association for Computing Machinery (ACM) ,1991
- Connecting tools using message passing in the Field environmentIEEE Software, 1990
- Deforestation: transforming programs to eliminate treesTheoretical Computer Science, 1990