Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Partial evaluation and separate compilation

Published: 01 December 1997 Publication History

Abstract

Hitherto all partial evaluators have processed a complete program to produce a complete residual program. We are interested in treating programs as collections of modules which can be processed independently: 'separate partial evaluation', so to speak. In this paper we still assume that the original program is processed in its entirety, but we show how to specialise it to the static data bit-by-bit, generating a different module for each bit. When the program to be specialised is an interpreter, this corresponds to specialising it to one module of its object language at a time: each module of the object language gives rise to one module of the residual program.

References

[1]
L. Augustsson and T. Johnsson. The Chalmers Lazy-ML Compiler. The Computer Journal, 32(2):127-141, 1989.
[2]
Dirk Dussart, Rogardt Heldal, and John Hughes. Module-Sensitive Program Specialization. submitted for publication, November 1996.
[3]
Y. Futamura. Partial evaluation of computation process- an approach to a compiler-compiler. In Systems, Computers, Controls, volume 2, pages 721-728, 1971.
[4]
Robert Glttck and Jesper Jorgensen. Efficient Multi-Level Generating Extensions for Program Specialization. In S. D. Swierstra and M. Hermenegildo, editors, Programming Languages: Implementations, Logics and Programs (PLILP'95), volume 982 of Lecture Notes in Computer Science, pages 259-278. Springer-Verlag, 1995.
[5]
Robert Gltlck. Towards Multiple Self-Applicati~n" In Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM'91, volume 26, New Haven, USA, sep 1991. SIGPLAN Notices and IFIP, ACM Press.
[6]
C. K. Hoist and J. Launchbury. Handwriting cogen to avoid problems with static typing, in Draft Proceedings, Fourth Annual Glasgow Workshop on Functional Programming, Skye, Scotland, pages 210-218. Glasgow University, 1991.
[7]
Paul Hudak et M. Report on the Programming Language Haskell: A Non-Strict, Purely Functional Language, March 1992. Version 1.2. Also in Sigplan Notices, May 1992.
[8]
John Hughes. Type Specialisation for the Lambdacalculus; or, A New Paradigm for Partial Evaluation based on Type inference. In Olivier Danvy, Robert Gltick, and Peter Thiemann, editors, Partial Evaluation, volume 1110 of LNCS. Springer- Verlag, February 1996.
[9]
N. D. Jones, C. K. Gomard, and P. Sestoft. Partial Evaluation and Automatic Program Generation. Prentice-Hall, 1993.
[10]
Neil D. Jones, Peter Sestoft, and Haxald Scndergaard. Mix: A self-applicable partial evaluator for experiments in compiler generation. Lisp and Symbolic Computation, 2(1):9-50, 1989. DIKU Report 91/12.
[11]
J. Launchbury. A Strongly-typed, Self-applicable Partial Evaluator. In A CM Functional Programming and Computer Architecture, number 523 in LNCS, Boston, 1991. Springer-Verlag.
[12]
J. Launchbury. Projection Factorisations in Partial Evaluation (PhD thesis), volume 1 of Distinguished Dissertations in Computer Science. Cambridge University Press, 1991.
[13]
Torben SE. Mogensen. Constructor specialization. In David Schmidt, editor, A CM Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 22-32, June 1993.
[14]
Torben tE. Mogensen. Evolution of partial evaluators: Removing inherited limits. In Olivier Danvy, Robert Gltick, and Peter Thiemann, editors, Partial Evaluation. Proceedings, Lecture Notes in Computer Science, page to appear. Springer- Verlag, 1996.
[15]
S. A. Romanenko. Arity raiser and its use in program specialisation. In Proc. 3rd European Symposium on Programming, Lecture Notes in Computer Science Vol.,{32, pages 341-360. Springer-Verlag, May 1990.
[16]
R. S. Sundaresh and Paul Hudak. Incremental Computation via Partial Evaluation. In Conference Record of the Eighteenth Annual A CM Symposium on Principles of Programming Languages, pages 1-13, Orlando, Florida, Jan 1991. ACM.
[17]
Valentin F. Turchin. The concept of a supercompiler. A CM Transactions on Programming Languages and Systems, 8(3):292-325, July 1986.

Recommendations

Comments

Information & Contributors

Information

Published In

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 December 1997
Published in SIGPLAN Volume 32, Issue 12

Check for updates

Author Tags

  1. modules
  2. partial evaluation
  3. separate compilation

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)50
  • Downloads (Last 6 weeks)14
Reflects downloads up to 17 Oct 2024

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media