scispace - formally typeset
Open AccessJournal ArticleDOI

Design and implementation of a diagnostic compiler for PL/I

Richard W. Conway, +1 more
- 01 Mar 1973 - 
- Vol. 16, Iss: 3, pp 169-179
TLDR
PL/C effectively demonstrates that compilers can provide better diagnostic assistance than is customarily offered, even when a sophisticated source language is employed, and that this assistance need not be prohibitively costly.
Abstract
PL/C is a compiler for a dialect for PL/I. The design objective was to provide a maximum degree of diagnostic assistance in a batch processing environment. For the most part this assistance is implicit and is provided automatically by the compiler. The most remarkable characteristic of PL/C is its perseverance—it completes translation of every program submitted and continues execution until a user-established error limit is reached. This requires that the compiler repair errors encountered during both translation and execution, and the design of PL/C is dominated by this consideration.PL/C also introduces several explicit user-controlled facilities for program testing. To accommodate these extensions to PL/I without abandoning compatibility with the IBM compiler, PL/C permits “pseudo comments”—constructions whose contents can optionally be considered either source text or comment.In spite of the diagnostic effort PL/C is a fast and efficient processor. It effectively demonstrates that compilers can provide better diagnostic assistance than is customarily offered, even when a sophisticated source language is employed, and that this assistance need not be prohibitively costly.

read more

Content maybe subject to copyright    Report






Citations
More filters
Proceedings ArticleDOI

DrJava: a lightweight pedagogic environment for Java

TL;DR: The environment provides a simple interface based on a "read-eval-print loop" that enables a programmer to develop, test, and debug Java programs in an interactive, incremental fashion.
Journal ArticleDOI

User Recovery and Reversal in Interactive Systems

TL;DR: A model for interactive systems is presented that allows recovery to be defined precisely and user and system responsibilities to be delineated and various implementation techniques for supporting recovery are described.

Perspectives on Software Engineering

TL;DR: In this paper, the procedures used in the development of computer software, emphasizing large-scale software development, and pmpomtmg areas where problems exist and solutions have been proposed are discussed.
Journal ArticleDOI

Understanding and debugging novice programs

TL;DR: A system called PROUST is described which performs intention-based diagnosis of errors in novice PASCAL programs and achieves high performance in finding bugs in nontrivial student programs.
Journal ArticleDOI

The Turing programming language

TL;DR: Turing, a new general purpose programming language, is designed to have Basic's clean interactive syntax, Pascal's elegance, and C's flexibility.
References
More filters
Journal ArticleDOI

Design of a separable transition-diagram compiler

TL;DR: A COBol compiler design is presented which is compact enough to permit rapid, one-pass compilation of a large subset of COBOL on a moderately large computer.
Journal ArticleDOI

Spelling correction in systems programs

TL;DR: By using systems which perform spelling correction, the number of debugging runs per program has been decreased, saving both programmer and machine time.
Journal ArticleDOI

Automatic correction of syntax-errors in programming languages

Jean-Pierre Levy
- 01 Jan 1971 - 
TL;DR: A formal model for automatic error-correction that considers clusters of errors, using a local context to determine the corrections, can be embedded in left-to-right recognizers.
Journal ArticleDOI

The linear quotient hash code

TL;DR: A new method of hash coding is presented and is shown to possess desirable attributes, and is simple, efficient, and exhaustive, while needing little time per probe and using few probes per lookup.
Journal ArticleDOI

CORC—the Cornell computing language

TL;DR: CORC is an experimental computing language that was developed at Cornell University to serve the needs of a large and increasing group of computer users whose demands are both limited and intermittent.