Skip to main content
Log in

Combinator-based compilation of recursive functions with different parameter passing modes

  • Published:
Acta Informatica Aims and scope Submit manuscript

Summary

Wand's technique of deriving compilers from denotational semantics is applied to a block structured language with recursive functions. The emphasis is on compilation of different parameter passing modes and a simple storage management. The technique starts by eliminating λ-variables from semantic equations through the introduction of special-purpose combinators. The final code consists of combinators equivalent to target-machine instructions (running-system procedures). The method enables us to derive a compiler and a running system directly from the denotational semantics of a language.

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. Barendregt, H.P.: The Lambda Calculus: Its Syntax and Semantics. Amsterdam: North-Holland 1981

    Google Scholar 

  2. Dijkstra, E.W.: Recursive Programming. Numer. Math. 2 (1960)

  3. Lao, M.J.: A Case Study of a Combinator-Based Compiler for a Language with Blocks and Recursive Functions. Comp. Sci. Dept., Indiana University. Technical Report 150, October 1983

  4. Montenyohl, M.E.M.: Static Analysis Based on Denotational transformations. Ph.D. thesis, Comp. Sci. Dept., Indiana University, August 1986

  5. Mosses, P.D.: A Compiler Generation Using Denotational Semantics, Math. Foundations of Computer Science, LNCS 45. Berlin-Heidelberg-New York: Springer 1976

    Google Scholar 

  6. Raoult, J.C., Sethi, R.: Properties of a Notation for Combining Functions. J. ACM 30, 595–611 (1983)

    Google Scholar 

  7. Raskovsky, M.R.: A Correspondence Between Denotational Semantics and Code Generation. Ph.D. thesis, Dept. of Computing Science, University of Essex, August 1982

  8. Reynolds, J.C.: Definitional Interpreters for Higher-Order Programming Languages. Proceedings of the ACM, vol. 2, pp. 717–740. Annual Conference, Boston, August 1972

  9. Sethi, R.: Circular Expressions: Elimination of Static Environments. Proceedings ICALP'81, LNCS vol. 115, pp. 378–392. Berlin-Heidelberg-New York: Springer 1981

    Google Scholar 

  10. Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. Cambridge, Mass.: MIT Press 1977

    Google Scholar 

  11. Wand, M.: Semantics-Directed Machine Architecture. Conf. Rec. 9th ACM Symp. on Principles of Programming Languages, pp. 234–241 (1982)

  12. Wand, M.: Deriving Target Code as a Representation of Continuation Semantics. ACM Trans. Progr. Lang. Syst. 4, 496–517 (1982)

    Google Scholar 

  13. Wand, M.: Loops in Combinator-Based Compilers. Conf. Rec. 10th ACM Symp. on Principles of Programming Languages, pp. 190–196 (1983)

  14. Wand, M.: A Semantic Prototyping System, Proc. ACM SIGPLAN'84. Compiler Construction Conf., 1984

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Lao, M.J. Combinator-based compilation of recursive functions with different parameter passing modes. Acta Informatica 24, 653–678 (1987). https://doi.org/10.1007/BF00282620

Download citation

  • Received:

  • Issue Date:

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

Keywords

Navigation