[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/512760.512771acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free access

A portable compiler: theory and practice

Published: 01 January 1978 Publication History

Abstract

A compiler for the C language has recently been constructed which is now compiling C for about half a dozen machines. The compiler was influenced in various ways by recent theoretical developments. This paper gives an overview of the compiler structure and algorithms, emphasizing those areas where theory was helpful, and discussing the approaches taken where theory was lacking.

References

[1]
D. M. Ritchie, C reference manual UNIX document
[2]
D. M. Ritchie and K. Thompson, "The UNIX Time-Sharing System," Comm. ACM17, 7, pp. 365-375 (July 1974).
[3]
A. Snyder, A Portable Compiler for the Language C, Master's Thesis, M.I.T., Cambridge, Mass. (1974).
[4]
S. C. Johnson, YACC - Yet Another Compiler-Compiler, Comp. Sci. Tech. Rep. No. 32, Bell Laboratories, Murray Hill, New Jersey (July 1975).
[5]
M. E. Lesk, LEX - A Lexical Analyzer Generator, Comp. Sci. Tech. Rep. No. 39, Bell Laboratories, Murray Hill, New Jersey (October 1975).
[6]
J. Bruno and R. Sethi, "Code Generation for a One-Register Machine," JACM23, 3, pp. 502-510 (July 1976).
[7]
A. V. Aho, S. C. Johnson and J. D. Ullman, "Code Generation for Expressions with Common Subexpressions," J. ACM24, 1, pp. 146-160 (Jan. 1977). Also in ACM Symp. on Principles of Programming Languages, pp 19-31, 1976.
[8]
A. P. Ershov, "On Programming of Arithmetic Operations," Dokl. A. N. USSR118, 3, pp. 427-430 (1958). (English translation in Comm. ACM1 (8), pp. 3-6, 1958)
[9]
R. Sethi and J. D. Ullman, "The generation of optimal code for arithmetic expressions," J. ACM17, 4, pp. 715-728 (Oct. 1970).
[10]
A. V. Aho and S. C. Johnson, "Optimal Code Generation for Expression Trees," J. ACM23, 3, pp. 488-501 (1975). Also in Proc. ACM Symp. on Theory of Computing, pp. 207-17, 1975
[11]
A. V. Aho, S. C. Johnson and J. D. Ullman, "Code Generation for Machines with Multiregister Operations," Proceedings of 4th SIGACT-SIGPLAN Symposium on Principles of Programming Languages pp. 21-28 (January 1977).
[12]
V. R. Pratt, "The Competence/Performance Dichotomy in Programming," Proceedings of the Fourth ACM Symposium on Principles of Programming Languages, p. 194 (January 1977).

Cited By

View all
  • (2020)3D Morphable Face Models—Past, Present, and FutureACM Transactions on Graphics10.1145/339520839:5(1-38)Online publication date: 9-Jun-2020
  • (2020)A history of MATLABProceedings of the ACM on Programming Languages10.1145/33863314:HOPL(1-67)Online publication date: 12-Jun-2020
  • (2020)Measuring the Diversity of Facebook Reactions to ResearchProceedings of the ACM on Human-Computer Interaction10.1145/33751924:GROUP(1-17)Online publication date: 4-Jan-2020
  • Show More Cited By
  1. A portable compiler: theory and practice

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    POPL '78: Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
    January 1978
    264 pages
    ISBN:9781450373487
    DOI:10.1145/512760
    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: 01 January 1978

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Acceptance Rates

    POPL '78 Paper Acceptance Rate 27 of 135 submissions, 20%;
    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)206
    • Downloads (Last 6 weeks)26
    Reflects downloads up to 01 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2020)3D Morphable Face Models—Past, Present, and FutureACM Transactions on Graphics10.1145/339520839:5(1-38)Online publication date: 9-Jun-2020
    • (2020)A history of MATLABProceedings of the ACM on Programming Languages10.1145/33863314:HOPL(1-67)Online publication date: 12-Jun-2020
    • (2020)Measuring the Diversity of Facebook Reactions to ResearchProceedings of the ACM on Human-Computer Interaction10.1145/33751924:GROUP(1-17)Online publication date: 4-Jan-2020
    • (2019)EarSketchCommunications of the ACM10.1145/333361362:9(78-85)Online publication date: 21-Aug-2019
    • (2019)Exact and Practical Modulo Scheduling for High-Level SynthesisACM Transactions on Reconfigurable Technology and Systems10.1145/331767012:2(1-26)Online publication date: 6-May-2019
    • (2014)Compilers and InterpretersComputing Handbook, Third Edition10.1201/b16812-77(1-38)Online publication date: 8-May-2014
    • (2013) The 3B20D Processor & DMERT Operating System : Software Development System Bell System Technical Journal10.1002/j.1538-7305.1983.tb04395.x62:1(275-289)Online publication date: 29-Jul-2013
    • (2013)Compiling Three-Address Code for C ProgramsBell System Technical Journal10.1002/j.1538-7305.1981.tb00236.x60:2(159-166)Online publication date: 29-Jul-2013
    • (2013)UNIX Time-Sharing System: Portability of C Programs and the UNIX SystemBell System Technical Journal10.1002/j.1538-7305.1978.tb02141.x57:6(2021-2048)Online publication date: 29-Jul-2013
    • (2012)Self-Definition for Software DevelopmentProceedings of the 2012 35th Annual IEEE Software Engineering Workshop10.1109/SEW.2012.12(52-61)Online publication date: 12-Oct-2012
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media