Partial evaluation of C and automatic compiler generation

Extended abstract
  • Lars Ole Andersen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 641)


A partial evaluator is a program transformator which as input take a program and parts of its input, and as output produce a specialized residual program. When applied to the rest of the input data, the residual program yields same result as the orignal program. The aim is efficiency: the residual program often run an order of magnitude faster. We have developed a self-applicable partial evaluator for a substantial subset of the C programming language. The possibility of self-application enables generation of stand-alone compilers from executable specifications, for example interpreters.


Residual Program Partial Evaluation Residual Function Program Point Partial Evaluator 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    L.O. Andersen. C program specialization. Technical report, DIKU, University of Copenhagen, Denmark, 1992.Google Scholar
  2. 2.
    L.O. Andersen. Self-applicable C program specialization. In Proceeding of PEPM'92: Partial Evaluation and Semantics-Based Program Manipulation, 1992.Google Scholar
  3. 3.
    A. Berlin and D. Weise. Compiling scientific code using partial evaluation. IEEE Computer, 23(12):25–37, December 1990.Google Scholar
  4. 4.
    A. Bondorf. Self-Applicable Partial Evaluation. PhD thesis, DIKU, University of Copenhagen, 1990.Google Scholar
  5. 5.
    C.K. Gomard and N.D. Jones. Compiler generation by partial evaluation: a case study. Structured Programming, 12:123–144, 1991.Google Scholar
  6. 6.
    J. Launchbury. A strongly-typed self-applicable partial evaluator. Functional Programming Languages and Computer Architecture, August 1991. (LNCS, vol. 523), pages 145–164. ACM, Springer Verlag, 1991.Google Scholar
  7. 7.
    U. Meyer. Techniques for partial evaluation of imperative languages. In Partial Evaluation and Semantics-Based Program Manipulation, New Haven, Connecticut. (Sigplan Notices, vol. 26, no. 9, September 1991), pages 94–105. ACM, 1991.Google Scholar
  8. 8.
    V. Nirkhe and W. Pugh. Partial evaluation and high-level imperative programming languages with applications in hard real-time systems. In Nineteenth ACM Symposium on Principles of Programming Languages, Albuquerque, New Mexico, January 1992. ACM, 1992.Google Scholar
  9. 9.
    F.G. Pagan. Partial Computation and the Construction of Language Processors. Prentice-Hall, 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Lars Ole Andersen
    • 1
  1. 1.Department of University of CopenhagenDIKUCopenhagen ØDenmark

Personalised recommendations