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