Skip to main content

Extended abstract of MIX: A self-applicable partial evaluator for experiments in compiler generation

  • Part V Implementation Issues
  • Conference paper
  • First Online:
  • 175 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 298))

Abstract

We have discussed partial evaluation of programs in statically scoped Lisp-like languages and described a self-applicable partial evaluator, mix, that has been successfully applied to generate compilers for toy languages, and even to generate a compiler generator. We assessed mix and gave tables of running times and space usage to illustrate its behavior.

As a basis for this, we introduced a formal framework for partial evaluation, compiling, and compiler generation which enabled the presentation of mix's applications. We also described and discussed the language Mixwell that was designed as the subject language for mix.

The full version of this paper is to appear in the journal LISP and Symbolic Computation

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Beckman, L. et al., A partial evaluator, and its use as a programming tool, Artificial Intelligence 7, 4 (1976) 319–357

    Article  Google Scholar 

  • Bulyonkov, M. A., Polyvariant mixed computation for analyzer programs, Acta Informatica 21 (1984) 473–484

    Article  MathSciNet  Google Scholar 

  • Cousot, P. and R. Cousot, Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints, Proc. Fourth ACM POPL Symp., Los Angeles, California 1977, 238–252

    Google Scholar 

  • Dybkjær, H., Parsers and partial evaluation: An experiment. DIKU student report No. 85-7-15, University of Copenhagen, Denmark, 1985

    Google Scholar 

  • Emanuelson, P. and A. Haraldsson, On compiling embedded languages in Lisp, Proc. 1980 Lisp Conf., Stanford, California (1980) 208–215

    Google Scholar 

  • Ershov, A. P., On the essence of compilation, Formal Description of Programming Concepts (ed. E. J. Neuhold), North-Holland 1978, 391–418

    Google Scholar 

  • Ershov, A. P., Mixed computation: Potential applications and problems for study, Theoretical Computer Science 18 (1982) 41–67

    Article  Google Scholar 

  • Futamura, Y., Partial evaluation of computation process — an approach to a compiler-compiler, Systems, Computers, Controls 2, 5 (1971) 45–50

    Google Scholar 

  • Ganzinger, H. and N. D. Jones (eds.), Programs as Data Objects, Lecture Notes in Computer Science 217, Springer-Verlag 1986

    Google Scholar 

  • Haraldsson, A., A partial evaluator, and its use for compiling iterative statements in Lisp, Proc. Fifth ACM POPL Symp., Tucson, Arizona 1978, 195–202

    Google Scholar 

  • Jones, N. D., P. Sestoft, and H. Søndergaard, An experiment in partial evaluation: The generation of a compiler generator, Rewriting Techniques and Applications (ed. J.-P. Jouannaud), Lecture Notes in Computer Science 202, Springer-Verlag 1985, 124–140

    Google Scholar 

  • Kahn, K. M., A partial evaluator of Lisp programs written in Prolog, Proc. First Int. Logic Programming Conf. (ed. M. Van Caneghem), Marseille, France 1982, 19–25

    Google Scholar 

  • Kahn, K. M. and M. Carlsson, The compilation of Prolog programs without the use of a Prolog compiler, Proc. Int. Conf. Fifth Generation Computer Systems, Tokyo, Japan 1984, 348–355

    Google Scholar 

  • Kleene, S. C., Introduction to Metamathematics, Van Nostrand 1952

    Google Scholar 

  • Komorowski, H. J., A Specification of an Abstract Prolog Machine and Its Application to Partial Evaluation, Linköping Studies in Science and Technology Dissertations 69, University of Linköping, Sweden 1981

    Google Scholar 

  • Kugler, H.-J. (ed.), Information Processing 86, Proc. IFIP 86 Conf., North-Holland 1986

    Google Scholar 

  • Lombardi, L. A., Incremental computation, Advances in Computers 8 (ed. F. L. Alt and M. Rubinoff), Academic Press 1967, 247–333

    Google Scholar 

  • Mogensen, T. Æ, The Application of Partial Evaluation to Ray-Tracing, Master's thesis, University of Copenhagen, Denmark, 1986

    Google Scholar 

  • Mosses, P. D., SIS — Semantics Implementation System, Reference Manual and User Guide, DAIMI Report MD-30, University of Aarhus, Denmark 1979

    Google Scholar 

  • Paulson, L., A semantics-directed compiler generator, Proc. Ninth ACM POPL Symp., Albuquerque, New Mexico 1982, 224–233

    Google Scholar 

  • Rees, J. and W. Clinger (eds.), Revised3 report on the algorithmic language Scheme, SIGPLAN Notices 21, 12 (1986) 37–79

    Google Scholar 

  • Rogers, H., Theory of Recursive Functions and Effective Computability, McGraw-Hill 1967

    Google Scholar 

  • Safra, S. and E. Shapiro, Meta interpreters for real, in [Kugler 1986], 271–278

    Google Scholar 

  • Sestoft, P., The structure of a self-applicable partial evaluator, in [Ganzinger and Jones 1986], 236–256

    Google Scholar 

  • Takeuchi, A. and K. Furukawa, Partial evaluation of Prolog programs and its application to meta programming, in [Kugler 1986], 415–420

    Google Scholar 

  • TsNIPIASS, Bazisnyi Refal i yego Realizatsiya na Vychislitelnykh Mashinakh, TsNIPIASS, Gosstroi SSSR, Moscow 1977

    Google Scholar 

  • Turchin, V. F., A supercompiler system based on the language Refal, SIGPLAN Notices 14, 2 (1979) 46–54

    Google Scholar 

  • Turchin, V. F., R. M. Nirenberg, and D. V. Turchin, Experiments with a supercompiler, Proc. 1982 ACM Symp. Lisp and Functional Programming, Pittsburgh, Pennsylvania 1982, 47–55

    Google Scholar 

  • Venken, R., A Prolog meta-interpreter for partial evaluation and its application to source to source transformation and query-optimisation, Proc. ECAI-84, Pisa, Italy (ed. T. O'Shea), North-Holland 1984, 91–100

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

M. Main A. Melton M. Mislove D. Schmidt

Rights and permissions

Reprints and permissions

Copyright information

© 1988 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Jones, N.D., Sestoft, P., Søndergaard, H. (1988). Extended abstract of MIX: A self-applicable partial evaluator for experiments in compiler generation. In: Main, M., Melton, A., Mislove, M., Schmidt, D. (eds) Mathematical Foundations of Programming Language Semantics. MFPS 1987. Lecture Notes in Computer Science, vol 298. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-19020-1_21

Download citation

  • DOI: https://doi.org/10.1007/3-540-19020-1_21

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-19020-2

  • Online ISBN: 978-3-540-38920-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics