Design and Implementation of a Diagnostic Compiler for PL/I

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 IBM compiler PL/C permits
"pseudo comments"-constructions whose contents 
can optionally be considered either source test 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.

CACM March, 1973

Conway, R. W.
Wilcox, T. R.

compilers, debugging, PL/I, programming languages

1.5 4.12 4.42

CA730305 JB January 24, 1978  10:45 AM

1179	4	2534
1288	4	2534
1323	4	2534
1358	4	2534
1380	4	2534
1544	4	2534
1646	4	2534
1665	4	2534
1781	4	2534
1781	4	2534
1787	4	2534
1989	4	2534
2111	4	2534
2112	4	2534
2182	4	2534
2251	4	2534
2497	4	2534
2534	4	2534
2534	4	2534
2534	4	2534
2534	4	2534
2534	4	2534
2534	4	2534
2534	4	2534
2541	4	2534
2543	4	2534
2556	4	2534
2556	4	2534
2559	4	2534
2650	4	2534
2650	4	2534
2698	4	2534
2708	4	2534
2708	4	2534
2733	4	2534
2770	4	2534
2820	4	2534
2887	4	2534
3053	4	2534
3073	4	2534
3083	4	2534
3155	4	2534
1787	5	2534
1959	5	2534
1973	5	2534
2111	5	2534
2182	5	2534
2534	5	2534
2534	5	2534
2534	5	2534
2708	5	2534
2820	5	2534
2971	5	2534
3045	5	2534
799	5	2534
830	5	2534
1477	6	2534
1477	6	2534
1491	6	2534
1491	6	2534
1787	6	2534
1835	6	2534
1974	6	2534
2111	6	2534
2534	6	2534
2534	6	2534
2534	6	2534
2534	6	2534
2556	6	2534
680	6	2534
799	6	2534