Hostname: page-component-78c5997874-mlc7c Total loading time: 0 Render date: 2024-11-15T01:58:54.007Z Has data issue: false hasContentIssue false

On the generation of specializers1

Published online by Cambridge University Press:  07 November 2008

Robert Glück
Affiliation:
Institut für Computersprachen, University of Technology Vienna, A-1040 Vienna, Austria
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

Self-applicable specializers have been used successfully to automate the generation of compilers. Specializers are often rather sophisticated, for which reason one would like to adapt and transform them with the aid of the computer. But how to automate this process? The answer to this question is given by three specializer projections. While the Futamura projections define the generation of compilers from interpreters, the specializer projections define the generation of specializers from interpreters. We discuss the potential applications of the specializer projections, and argue that their realization is a real touchstone for the effectiveness of the specialization principle. In particular, we discuss generic specializers, bootstrapping of subject languages and the generation of optimizing specializers from interpretive specifications. The Futamura projections are regarded as a special case of the specializer projections. Recent results confirm that the specializer projections can be performed in practice using partial evaluators.

Type
Articles
Copyright
Copyright © Cambridge University Press 1994

References

Abramov, S. M. (1991) Metacomputation and logic programming. Programmirovanie 3, 3144 (in Russian).Google Scholar
Andersen, L. O. (1992) Self-applicable C program specialization. In: Proceedings Workshop on Partial Evaluation and Semantics-Based Program Manipulation. San Francisco, CA, pp. 5461.Google Scholar
Bjørner, D., Ershov, A. P. and Jones, N. D. (eds.) (1988) Partial Evaluation and Mixed Computation. North-Holland.Google Scholar
Bondorf, A. (1992) Improving binding times without explicit CPS-conversion. In: ACM Conference on Lisp and Functional Programming. San Francisco, CA, 110.CrossRefGoogle Scholar
Bondorf, A. and Danvy, O. (1991) Automatic autoprojection of recursive equations with global variables and abstract data types. Sciences of Computer Programming 16(2) 151195.CrossRefGoogle Scholar
Consel, C. and Danvy, O. (1989) Partial evaluation of pattern matching in strings. Information Processing Letters 30(2) 7986.CrossRefGoogle Scholar
Consel, C. and Danvy, O. (1991) Static and dynamic semantics processing. In: Conference Record of the Eighteenth ACM Symposium on Principles of Programming Languages.Orlando, FL, 1424. ACM Press.CrossRefGoogle Scholar
Ershov, A. P. (1982) Mixed computation: potential applications and problems for study. Theoretical Computer Science 18 4167.CrossRefGoogle Scholar
Futamura, Y. (1971) Partial evaluation of computation process-an approach to a compiler-compiler. Systems, Computers, Controls 2(5) 4550.Google Scholar
Gallagher, J. and Bruynooghe, M. (1991) The derivation of an algorithm for program specialization. New Generation Computing 9(3–4) 305333.CrossRefGoogle Scholar
Glück, R. (1991 a) On the generation of S → R specializers. Technical Report, University of Technology, Vienna. (Presented at the NYU Partial Computation and Program Analysis Day. June 21 1991, New York.)Google Scholar
Glück, R. (1991 b) Towards multiple self-application. In: Proceedings Symposium on Partial Evaluation and Semantics-Based Program Manipulation.New Haven, CT,309320. ACM Press.CrossRefGoogle Scholar
Glück, R. (1992) Projections for knowledge based systems. In: Trappl, R (ed.), Cybernetics and Systems Research '92. Vol. 1, pp. 535542, World Scientific.Google Scholar
Glück, R. and Jørgensen, J. (1994) Generating optimizing specializers. In: IEEE International Conference on Computer Languages,Toulouse, France,IEEE Computer Society Press (to appear).Google Scholar
Holst, N. C. K. (1988) Language triplets: the Amix approach. In: Bjørner, F., Ershov, A. P. and Jones, N. D. (eds.), Partial Evaluation and Mixed Computation. Gammel Avernæs, Denmark, pp. 167185, North-Holland.Google Scholar
Jones, N. D. (1988) Challenging problems in partial evaluation and mixed computation. In: Bjørner, D., Ershov, A. P. and Jones, N. D. (eds.), Partial Evaluation and Mixed Computation. Gammel Avernæs, Denmark. 1–14, North-Holland.Google Scholar
Jones, N. D. (1990) Partial evaluation, self-application and types. In: Paterson, M. S. (ed.), Automata, Languages and Programming. Warwick University, UK, Lecture Notes in Computer Science, Vol. 443, pp. 639659, Springer-Verlag.CrossRefGoogle Scholar
Jones, N. D., Gomard, C. K. and Sestoft, P. (1993) Partial Evaluation and Automatic Program Generation. Prentice Hall.Google Scholar
Jones, N. D., Sestoft, P. and Søndergaard, H. (1989) Mix: a self-applicable partial evaluator for experiments in compiler generation. Lisp and Symbolic Computation 2(1) 950.CrossRefGoogle Scholar
Jørgensen, J. (1991) Generating a pattern matching compiler by partial evaluation. In: Peyton Jones, S. L., Hutton, G. and Holst, C. K. (eds), Proceedings Glasgow Workshop on Functional Programming, Ullapool, Scotland, pp. 177195, Springer–Verlag.Google Scholar
Jørgensen, J. (1992) Generating a compiler for a lazy language by partial evaluation. In: Conference Record of the Nineteenth Symposium on Principles of Programming Languages.Albuquerque, NM, pp. 258268. ACM Press.CrossRefGoogle Scholar
Launchbury, J. (1991) A strongly-typed self-applicable partial evaluator. In: Hughes, J. (ed.), Functional Programming Languages and Computer Architecture. Cambridge, MA, pp. 145164, Springer-Verlag.CrossRefGoogle Scholar
Pagan, F. G. (1988) Converting interpreters into compilers. Software – Practice and Experience 18 509527.CrossRefGoogle Scholar
Romanenko, A. (1991) Inversion and metacomputation. In: Proceedings Symposium on Partial Evaluation and Semantics-Based Program Manipulation.New Haven, CT, pp. 1222, ACM Press.CrossRefGoogle Scholar
Romanenko, S. (1988) A compiler generator produced by a self-applicable specializer can have a surprisingly natural and understandable structure. In: Bjørner, D., Ershov, A. P. and Jones, N. D. (eds.), Partial Evaluation and Mixed Computation. Gammel Avernæs, Denmark, pp. 445463, North-Holland.Google Scholar
Turchin, V. F. (1980) The use of metasystem transition in theorem proving and program optimization. In: de Bakker, J. W. and van Leeuwen, J. (eds.), Automata, Languages and Programming: Noordwijkerhout, Netherlands, Lecture Notes in Computer Science, Vol. 85, pp. 645657, Springer-Verlag.CrossRefGoogle Scholar
Turchin, V. F. (1986) The concept of a supercompiler. ACM TOPLAS 8(3): 292325.CrossRefGoogle Scholar
Turchin, V. F. (1993) Program transformation with metasystem transitions. Journal of Functional Programming 3(3) 283314, 07.CrossRefGoogle Scholar
Submit a response

Discussions

No Discussions have been published for this article.