Design and implementation of a diagnostic compiler for PL/I
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
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
Richard Holt,James R. Cordy +1 more
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
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
James R. Bell,Charles H. Kaman +1 more
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.