Skip to main content
Log in

π-RED*—A graph reducer for a full-fledged γ-calculus

  • Regular Papers
  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

This paper describes an applicative order graph reducer which under interactive control performs high-level program transformations that are governed by the reduction semantics of a full-fledged untyped γ-calculus. To do so with competitive speed, high-level functional programs are by a pre-processor reversibly converted into graph representations of γ-terms. Its subterms are closed by the abstraction of relatively free variables only to the extent absolutely necessary to avoid the complexity of full β-reductions at run-time. Processing these γ-terms is based on high-level interpretation which exploits the simplicity and efficiency of naive graph pointer substitutions when reducing function calls. Partially or completely reduced graphs are by a post-processor re-converted into high-level programs. Full β-reductions are only employed by the pre- and post-processor to maintain correct binding levels when abstracting free variables from γ-terms and when undoing these abstractions or reducing partial applications left over as closures, respectively.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Appel, A. W. and MacQueen, D. M., “A Standard ML Compiler,”ACM Conference on Functional Programming Languages and Computer Architecture, Lecture Notes in Computer Science, 274, Portland Oregon, pp. 301–324, Sept., 1987.

  2. Backus, J., “Reduction Languages and Variable-Free Programming,”IBM Research Report, RJ 1010, April 7, 1973.

  3. Backus, J., “Programming Language Semantics and Closed Applicative Languages,” inProc. of the 1st ACM Symposium on Principles of Programming Languages, Boston, Massachusetts, pp. 71–86, October, 1973.

  4. Berkling, K. J., “Reduction Laguages for Reduction Machines,” inProc. of the 2nd Annual Symposium on Computer Architecture, ACM/IEEE, pp. 133–140, Jan., 1975.

  5. Berkling, K. J., “A Symmetric Complement to the Lambda Calculus”,Internal Report, GMD ISF-76-7, D-5205, Sankt Augustin 1, Sept. 14, 1976.

  6. Berkling, K. J. and Fehr, E., “A Consistent Extension of the Lambda-Calculus as a Base for Functional Programming Languages,”Information and Control, 55, 1-3, Academic Press, New York, Oct./Nov./Dec., 1982.

    Google Scholar 

  7. Kluge, W., Schmittgen, C., and Zimmer, R., “π-RED—An Interactive Reduction System Based on a Full-Fledged γ-Calculus,” to appear inProc. of the Workshop on Architectural Support for Declarative Programming Languages, Eilat, Israel, May, 1989.

  8. Cardelli, L. and Wegner, P., “On Understanding Types, Data Abstraction, and Polymorphism,”ACM Computing Surveys, 17, December 4, 1985.

  9. Church, A.,The Calculi of Lambda Conversion, Princeton University Press, 1941.

  10. DeBruijn, N. G., “Lambda-Calculus Notation with Nameless Dummies. A Tool for Automatic Formula Manipulation with Application to the Church-Rosser-Theorem,”Indagationes Mathematicae, 34, pp. 381–392, 1972.

    MathSciNet  Google Scholar 

  11. Fairbairn, J. and Wray, S. C., “TIM: A Simple, Lazy Abstract Machine to Execute Supercombinators,”ACM Conference on Functional Programming Languages and Computer Architecture. Lecture Notes in Computer Science, 274, Portland, Oregon, September, 1987.

  12. Harland, D. M.Polymorphic Programming Languages, Ellis Horwood, 1984.

  13. Harper, R., MacQueen, D. M., and Milner, R.Standard ML, Edinburgh-LFCS, March, 1986.

  14. Harper, R., Milner, R., and Tofte, M.,The Definition of Standard ML Version 2, University of Edinburgh, LFCS, August, 1988.

  15. Hommes, F., The Heap/Substitution Concept—An Implementation of Functional Operations on Data Structures for a Reduction Machine, inProc. of the 9th Annual Symposium on Computer Architecture, Austin, Texas, pp. 248–256, April, 1982.

  16. Hudak, P. and Kranz, D., “A Combinator-Based Compiler for a Functional Language,” inProc. of the 11th ACM Symposium on Principles of Programming Languages, 1984.

  17. Hughes, R. J., “Super-Combinators: A New Implementation Method for Applicative Languages,” inProc. of the ACM Symposium on LISP and Functional Programming, Pittsburgh, PA, pp. 1–10, Aug., 1982.

  18. Johnsson, T., “Efficient Compilation of Lazy Evaluation,”SIGPLAN Notices, 19, 6, pp. 58–69, June, 1984.

    Article  Google Scholar 

  19. Johnsson, T., “The G-Machine an Abstract Machine for Graph Reduction,”SERC Chalmers University, Deductive Programming Workshop, University College London, May, 1983.

  20. Johnsson, T., “Lambda Lifting: Transforming Programs to Recursive Equations,”ACM Conference on Functional Programming Languages and Computer Architecture, Lecture Notes in Computer Science, 201, Nancy, Sept., 1985.

  21. Kluge, W. E., “The Architecture of the Reduction Machine Hardware Model,”Internal Report, GMD ISF-79-3, D-5205, Sankt Augustin, Aug., 1979.

  22. Kluge, W. E. and Schlütter, H., “An Architecture for Direct Execution of Reduction Languages,” inProc. of the International Workshop on High-Level Language Computer Architecture, Fort Lauderdale, Florida, Dec., 1983.

  23. Milner, R., “A Theory of Type Polymorphism in Programming,”Journal of Computer and System Science, pp. 348–375, 1978.

  24. Peyton Jones S. L. and Salkild, J., “The Spineless Tagless G-Machine,”ACM Conference on Functional Programming Languages and Computer Architecture, London, Sept., 1989.

  25. Pless, E. and Schlütter, H., “The Reduction Language OREL/2,”Arbeitspapiere der GMD, 1989.

  26. Turner, D. A., “A New Implementation Technique for Applicative Languages,”Software Practice and Experience, 9, pp. 31–49, 1979.

    Article  MATH  Google Scholar 

  27. Turner, D. A., “Miranda: A Non-Strict Language with Polymorphic Types,”ACM Conference on Functional Programming Languages and Computer Architecture, Lecture Notes in Computer Science, 201, Nancy, 1985.

Download references

Author information

Authors and Affiliations

Authors

About this article

Cite this article

Schmittgen, C., Blödorn, H. & Kluge, W. π-RED*—A graph reducer for a full-fledged γ-calculus. New Gener Comput 10, 173–195 (1992). https://doi.org/10.1007/BF03037478

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF03037478

Keywords

Navigation