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.
Similar content being viewed by others
References
Barendregt, H.P.: The Lambda Calculus: Its Syntax and Semantics. Amsterdam: North-Holland 1981
Dijkstra, E.W.: Recursive Programming. Numer. Math. 2 (1960)
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
Montenyohl, M.E.M.: Static Analysis Based on Denotational transformations. Ph.D. thesis, Comp. Sci. Dept., Indiana University, August 1986
Mosses, P.D.: A Compiler Generation Using Denotational Semantics, Math. Foundations of Computer Science, LNCS 45. Berlin-Heidelberg-New York: Springer 1976
Raoult, J.C., Sethi, R.: Properties of a Notation for Combining Functions. J. ACM 30, 595–611 (1983)
Raskovsky, M.R.: A Correspondence Between Denotational Semantics and Code Generation. Ph.D. thesis, Dept. of Computing Science, University of Essex, August 1982
Reynolds, J.C.: Definitional Interpreters for Higher-Order Programming Languages. Proceedings of the ACM, vol. 2, pp. 717–740. Annual Conference, Boston, August 1972
Sethi, R.: Circular Expressions: Elimination of Static Environments. Proceedings ICALP'81, LNCS vol. 115, pp. 378–392. Berlin-Heidelberg-New York: Springer 1981
Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. Cambridge, Mass.: MIT Press 1977
Wand, M.: Semantics-Directed Machine Architecture. Conf. Rec. 9th ACM Symp. on Principles of Programming Languages, pp. 234–241 (1982)
Wand, M.: Deriving Target Code as a Representation of Continuation Semantics. ACM Trans. Progr. Lang. Syst. 4, 496–517 (1982)
Wand, M.: Loops in Combinator-Based Compilers. Conf. Rec. 10th ACM Symp. on Principles of Programming Languages, pp. 190–196 (1983)
Wand, M.: A Semantic Prototyping System, Proc. ACM SIGPLAN'84. Compiler Construction Conf., 1984
Author information
Authors and Affiliations
Rights 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
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00282620