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

Practical syntactic error recovery in compilers

Published: 01 October 1973 Publication History

Abstract

A substantial portion of any programmer's time is spent in debugging. One of the major services of any compiler ought to be to provide as much information as possible about compile-time errors in order to minimize the time required for debugging. A good error detection and recovery scheme should maximize the number of errors detected but minimize the number of times it reports an error when there is none. These spurious error detections and their associated error messages are usually engendered by an inappropriate recovery action.In this paper we describe a recovery scheme for syntax errors which provides high quality recovery with good diagnostic information at relatively low cost. In addition, implementation of the recovery scheme can be automated - that is, the recovery routine can be created by a parser-generator. Therefore, the compiler designer need not be burdened with the difficulties of error recovery and the programming effort necessary to design and debug a myriad of ad hoc recovery routines.

References

[1]
Bauer, H. R., Becker, S. and Graham, S. L. "Algol W Implementation," Technical Report CS 98, Computer Science Department, Stanford University, Stanford, Ca., May 1968.]]
[2]
Bauer, H. R., Becker, S., Graham, S. L., and Satterthwaite, E. "Algol W Language Description," Technical Report CS 110 Computer Science Department, Stanford University, Stanford, Ca., Sept. 1969.]]
[3]
Conway, R. W., Morgan, H. L., Wagner, R. A., and Wilcox, T. R. "PL/C. A High Performance Subset of PL/I," Technical Report 70-55, Computer Science Department, Cornell University, Ithaca, N.Y., February, 1970.]]
[4]
Conway, R. W., and Wilcox, T. R. "Design and Implementation of a Diagnostic Compiler for PL/I," Communications of the Association for Computing Machinery, Vol. 16, March 1973, pp. 169-179.]]
[5]
Gries, D. "The Use of Transition Matrices in Compiling," CACM, Vol. 11, January, 1968, pp. 26-34.]]
[6]
James, E. B. and Partridge, D. P. "Adaptive Correction of Program Statements," Communications of the Association for Computing Machinery, Vol. 16, January 1973, pp. 27-37.]]
[7]
James, L. R. "A Syntax Directed Error Recovery Method," Master's thesis, Technical Report CSRG-13, Computer Systems Research Group, University of Toronto, Toronto, Canada, May 1972.]]
[8]
Knuth, D. E. "On the Translation of Languages from Left to Right", Information and Control, Vol. 8, November 1965, pp. 607-639.]]
[9]
La France, J. E. "Syntax-directed Error Recovery for Compilers," Ph.D. thesis, Illiac IV Document 249, Computer Science Department, University of Illinois, Urbana, Illinois, June 1971.]]
[10]
Leinius, R. P. "Error Detection and Recovery for Syntax Directed Compiler Systems," Ph.D. thesis, Computer Science Department, University of Wisconsin, Madison, Wisconsin, 1970.]]
[11]
Levy, J. P. "Automatic Correction of Syntax Errors in Programming Languages," Ph.D. thesis, Technical Report TR71-116, Computer Science Department, Cornell University, Ithaca, N.Y., December, 1971.]]
[12]
Morgan, H. L. "Spelling Correction in System Programs," Communications of the Association for Computing Machinery, Vol. 13, February 1970, pp. 90-94.]]
[13]
Peterson, T. G. "Syntax Error Detection, Correction and Recovery in Parsers," Ph.D. thesis, Stevens Institute of Technology, Hoboken, N.J. 1972.]]
[14]
Rhodes, S. P. "Practical Syntactic Error Recovery for Programming Languages," Ph.D. thesis, Technical Report 15, Department of Computer Science, University of California, Berkeley, Ca., June 1973.]]
[15]
Wirth, N. and Weber, H. "Euler, A Generalization of Algol and Its Formal Definition", Communications of the Association for Computing Machinery, Vol. 9, January and February 1966, pp. 13-23 and pp. 89-99.]]
[16]
Wirth, N. "A Programming Language for the 360 Computers," Journal of the Association for Computing Machinery, Vol. 15, January 1968, pp. 37-74.]]
[17]
Wirth, N. "The Programming Language Pascal," Acta Informatica, Vol. 1, January 1971, pp. 35-63.]]
[18]
Wirth, N. "The Design of a Pascal Compiler," Proceedings of the International Summer School on Program Structures and Fundamental Concepts of Programming, Munich, Germany, July 1971.]]

Cited By

View all
  • (2024)IoTa: Fine-Grained Traffic Monitoring for IoT Devices via Fully Packet-Level ModelsIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2023.334056321:4(3931-3947)Online publication date: Jul-2024
  • (2021)Validating static warnings via testing code fragmentsProceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3460319.3464832(540-552)Online publication date: 11-Jul-2021
  • (2020)Fairness of Scoring in Online Job MarketplacesACM/IMS Transactions on Data Science10.1145/34028831:4(1-30)Online publication date: 25-Nov-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '73: Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
October 1973
242 pages
ISBN:9781450373494
DOI:10.1145/512927
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 October 1973

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Acceptance Rates

POPL '73 Paper Acceptance Rate 22 of 100 submissions, 22%;
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)106
  • Downloads (Last 6 weeks)22
Reflects downloads up to 21 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)IoTa: Fine-Grained Traffic Monitoring for IoT Devices via Fully Packet-Level ModelsIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2023.334056321:4(3931-3947)Online publication date: Jul-2024
  • (2021)Validating static warnings via testing code fragmentsProceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3460319.3464832(540-552)Online publication date: 11-Jul-2021
  • (2020)Fairness of Scoring in Online Job MarketplacesACM/IMS Transactions on Data Science10.1145/34028831:4(1-30)Online publication date: 25-Nov-2020
  • (2020)Path persistence in the cloudACM SIGCOMM Computer Communication Review10.1145/3402413.340241650:2(11-23)Online publication date: 25-May-2020
  • (2020)An Enhanced Neural Network Approach to Person-Job Fit in Talent RecruitmentACM Transactions on Information Systems10.1145/337692738:2(1-33)Online publication date: 11-Feb-2020
  • (2020)Efficient Neural Matrix Factorization without Sampling for RecommendationACM Transactions on Information Systems10.1145/337380738:2(1-28)Online publication date: 14-Jan-2020
  • (2019)Effects of Anonymity, Ephemerality, and System Routing on Cost in Social Question AskingProceedings of the ACM on Human-Computer Interaction10.1145/33611193:GROUP(1-21)Online publication date: 5-Dec-2019
  • (2019)Effective lock handling in stateless model checkingProceedings of the ACM on Programming Languages10.1145/33605993:OOPSLA(1-26)Online publication date: 10-Oct-2019
  • (2019)IntelliMerge: a refactoring-aware software merging techniqueProceedings of the ACM on Programming Languages10.1145/33605963:OOPSLA(1-28)Online publication date: 10-Oct-2019
  • (2019)Getafix: learning to fix bugs automaticallyProceedings of the ACM on Programming Languages10.1145/33605853:OOPSLA(1-27)Online publication date: 10-Oct-2019
  • 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