Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/582153.582179acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free access

Semantics-directed machine architecture

Published: 25 January 1982 Publication History
  • Get Citation Alerts
  • Abstract

    We show how to analyze the denotational semantics for a programming language to obtain a compiler and a suitable target machine for the language. We do this by rewriting the equations using suitable combinators. The machine operates by simulating the reduction sequences for the combinator terms. The reduction sequences pass through certain standard forms, which become an architecture for the machine, and the combinators become machine instructions. Despite the abstract nature of its development, the machine greatly resembles a conventional one. The method is illustrated by a simple expression language with procedures and input-output.

    References

    [1]
    Brosgol, B.M. "TCOLAda and the 'Middle End' of the PQCC Ada Compiler" Proc. ACM-SIGPLAN Symposium on the ADA Programming Languages, SIGPLAN Notices 15, 11 (November, 1980), 101--112.
    [2]
    Clarke, T., P. Gladstone, C. Maclean, and A. Norman. "SKIM- The S, K, I Reduction Machine" Proc. 1980 LISP Conf., 128--135.
    [3]
    Curry, H. B., and Feys, R. Combinatory Logic, Vol. 1. North- Holland, Amsterdam, 1958.
    [4]
    Federhen, S. "A Mathematical Semantics for PLANNER" M.S. Thesis, University of Maryland, 1980.
    [5]
    Gordon, M.J.C. The Denotational Description of Programming Languages, Springer, Berlin, 1979.
    [6]
    Jones, N. D. (ed.) Semantics-Directed Compiler Generation, Lecture Notes in Comp. Sci., Vol. 94, Springer, Berlin, 1980.
    [7]
    Jones, N. D., and Schmidt, S. "Compiler Generation from Denotational Semantics" in Semantics-Directed Compiler Generation (N.D. Jones, ed), pp. 70--93. Springer Lecture Notes in Computer Science, Vol. 94 (Berlin, 1980).
    [8]
    Morris, F. L. "Advice on Structuring Compilers and Proving Them Correct" Proc. ACM Symp. on Principles of Programming Languages (Boston, 1973), 144--152.
    [9]
    Mosses, P. D. "Mathematical Semantics and Compiler Generation", D. Phil thesis, Oxford Univ., 1975.
    [10]
    Mosses, P. D. "A Constructive Approach to Compiler Correctness", Automata, Languages, and Programming, Seventh Colloquium (1980).
    [11]
    O'Donnell, Michael. Computing in Systems Described by Equations, Springer Lecture Notes in Computer Science, Vol. 58, Springer, Berlin, 1977.
    [12]
    Raoult, J. C., and Sethi, R. "On metalanguages for a compiler generator: properties of a notation for combining functions", manuscript, Bell Laboratories, Murray Hill, N.J. (July, 1981).
    [13]
    Raskovsky, M., and Collier, P. "From Standard to Implementation Denotational Semantics", in Semantics-Directed Compiler Generation (N. D. Jones, ed.) Springer, Berlin, 1980.
    [14]
    Sethi, R. "Circular Expressions: elimination of static environments" Automata, Languages, and Programming, 8th Colloquium, Acre. Lecture Notes in Computer Science, Vol. 115, Springer, Berlin, 1981.
    [15]
    Stoy, Joseph E. Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory MIT Press, Cambridge, MA, 1977.
    [16]
    Thatcher, J. W., Wagner, E. G., and Wright, J. B. "More on Advice on Structuring Compilers and Proving Them Correct" Theoret. Comp. Sci. 15 (1981), 223--249.
    [17]
    Turner, D. A. "A New Implementation Technique for Applicative Languages" Software: Practice and Experience 9 (1979), 31--49.
    [18]
    Wand, M. "Deriving Target Code as a Representation of Continuation Semantics," to appear, ACM Trans. on Prog. Lang. and Sys.
    [19]
    Wand, M. "Different Advice on Structuring Compilers and Proving Them Correct" Indiana University Computer Science Department, Technical Report No. 95 (September, 1980).

    Cited By

    View all
    • (2023)Calculating Compilers for ConcurrencyProceedings of the ACM on Programming Languages10.1145/36078557:ICFP(740-767)Online publication date: 31-Aug-2023
    • (2023)LURK: Lambda, the Ultimate Recursive Knowledge (Experience Report)Proceedings of the ACM on Programming Languages10.1145/36078397:ICFP(259-274)Online publication date: 31-Aug-2023
    • (2015)Calculating correct compilersJournal of Functional Programming10.1017/S095679681500018025Online publication date: 16-Sep-2015
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    POPL '82: Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
    January 1982
    378 pages
    ISBN:0897910656
    DOI:10.1145/582153
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 25 January 1982

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Acceptance Rates

    POPL '82 Paper Acceptance Rate 38 of 121 submissions, 31%;
    Overall Acceptance Rate 824 of 4,130 submissions, 20%

    Upcoming Conference

    POPL '25

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)44
    • Downloads (Last 6 weeks)13
    Reflects downloads up to 11 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Calculating Compilers for ConcurrencyProceedings of the ACM on Programming Languages10.1145/36078557:ICFP(740-767)Online publication date: 31-Aug-2023
    • (2023)LURK: Lambda, the Ultimate Recursive Knowledge (Experience Report)Proceedings of the ACM on Programming Languages10.1145/36078397:ICFP(259-274)Online publication date: 31-Aug-2023
    • (2015)Calculating correct compilersJournal of Functional Programming10.1017/S095679681500018025Online publication date: 16-Sep-2015
    • (2010)Functional derivation of a virtual machine for delimited continuationsProceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming10.1145/1836089.1836101(87-98)Online publication date: 26-Jul-2010
    • (2009)Continuation-based compilation of functional languages for parallel machinesMathematical Structures in Computer Science10.1017/S09601295000015472:04(393)Online publication date: 4-Mar-2009
    • (2009)Model-Driven Engineering from Modular Monadic SemanticsProceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages10.1007/978-3-642-03034-5_2(20-44)Online publication date: 2-Jul-2009
    • (2008)Defunctionalized interpreters for programming languagesProceedings of the 13th ACM SIGPLAN international conference on Functional programming10.1145/1411204.1411206(131-142)Online publication date: 20-Sep-2008
    • (2008)Defunctionalized interpreters for programming languagesACM SIGPLAN Notices10.1145/1411203.141120643:9(131-142)Online publication date: 20-Sep-2008
    • (2006)SAL: Simple Applicative LanguageSoftware Engineering 210.1007/978-3-540-33193-3_16(573-658)Online publication date: 2006
    • (2005)Rapidly prototyping implementation infrastructure of domain specific languagesProceedings of the 2005 ACM symposium on Applied computing10.1145/1066677.1066998(1419-1426)Online publication date: 13-Mar-2005
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media