1,971 papers · page 98 of 99
Andres Rudmik, Barbara G. Moore
This paper describes the design of a compiling system that supports the efficient compilation of very large programs. The system consists of front ends for different languages, a common program database to store the intermediate code, and various back ends, optimizers, debuggers …
Ravi Sethi
We focus on the part of a compiler between syntax analysis and code generation. A language is specified by adding semantic rules in a functional notation to the syntax of the language. Starting with a small sublanguage of while statements, the semantics of the statement construct…
Harlan K. Seyfer
The testing of the Univac UCS-Pascal compiler is described. Tests were acquired from various sources, converted from existing tests, and developed in house. Test development and execution using the Univac Test Controller System is illustrated with examples. The experiences gained…
Thomas N. Turba
This paper presents a method whereby a high-level language can be extended to provide access to all the capabilities of the underlying hardware and operating system of a machine. In essence, it is a facility that allows a user to make special purpose extensions to a language with…
Paul W. Abrahams
CIMS PL/I is an implementation of PL/I on the Control Data 6600 computer. The most challenging aspect of implementing PL/I is dealing with the sheer size and complexity of the language; since a PL/I compiler is an inherently large object, building one is a good way to test the li…
J. Eugene Ball
Practical application of procedure integration (inline expansion) as a program optimization requires some method for estimating the effects of subsequent optimization on the integrated procedure. A technique is described for predicting the code improvement that can be expected du…
G. B. Bonkowski, W. Morven Gentleman, M. A. Malcolm
Zed is the base language used to implement the portable realtime operating system Thoth[7], and to write commands, utilities, application programs, and other software which run under Thoth. (Zed is similar to C, although language details are not important in this paper.) One of t…
R. G. G. Cattell, Joseph M. Newcomer, Bruce W. Leverett
This paper presents some code generation issues in the context of the PQCC Production-Quality Compiler-Compiler project [8]. The approach taken is unusual in several ways. The machine-dependent information for selection of code sequences, register assignments, etc., has been sepa…
James R. Cordy, Richard C. Holt, David B. Wortman
This paper describes a technique for implementing the part of a compiler that processes the semantics of a programming language. It presents a concise, easy to understand notation for describing this semantic processing. The notation utilizes semantic charts which are similar to …
Frank DeRemer, Thomas J. Pennello
We define two relations that capture the essential structure of the problem of computing LALR(1) look-ahead sets, and present an efficient algorithm to compute the sets in time linear in the size of the relations. In particular, for a PASCAL grammar, our algorithm performs less t…
Michael K. Donegan, Robert E. Noonan, Stefan Feyock
Code generation has withstood attempts at automation for some time. This paper describes a non-procedural, problem-oriented language for expressing a code generator. The basis for the language is the description of the target machine as a finite-state automaton. An example code g…
Janet Fabri
Most studies of optimization techniques for higher level languages have focused on improving execution time of generated programs, often at the expense of increased storage. When storage optimization has been addressed, it is usually in conjunction with time optimization, such as…
Stuart I. Feldman
I have recently written a portable compiler [1] for the Fortran 77 language [2]. It attacks an old language with new tools: the parser is generated automatically from an LALR(1) grammar, the program is produced by code generators designed for another language. These tools proved …
Dennis J. Frailey
This paper describes an intermediate language to be generated by a syntax analyzer and processed by a code generator. An (essentially) optional code optimization phase may be used before code generation. The language is designed to exclude source and target dependencies (these ar…
Susan L. Graham, Charles B. Haley, William N. Joy
We present a practical, language independent mechanism for error recovery in LR parsers. The method is easy to implement in existing parser generators. It uses only the normal parse tables and a small amount of symbol cost information. It is possible to use compressed parse table…
Susan L. Graham, William N. Joy, Olivier Roubine
Newer programming languages such as Modula and Euclid provide more control than traditional Algol-like languages such as ALGOL-60 and Pascal over the inheritance, in inner scopes, of named entities available in outer scopes. They also provide mechanisms whereby chosen entities fr…
Gilbert J. Hansen, G. A. Shoults, J. D. Cointment
This paper describes the implementation of an extended Pascal compiler on the TI 990 minicomputer, the TI 980 minicomputer, and the IBM System 370. The compiler was designed to be as machine independent as possible; the parser and machine independent optimizer are parameterized s…
Richard C. Holt, David B. Wortman
The structuring of data has become a central theme in programming language research. The ultimate utility of data structuring techniques such as clustering and type parameterization mechanisms will, however be determined in large part by our ability to provide understandable and …
Mark Kahrs
Design and implementation experience with an Interactive Programming System are described. Reflections are made on various design decisions and on the effect of using a Tree Factored Interpreter as the core of the system.
Richard J. LeBlanc, Charles N. Fischer
Perhaps the single most important paradigm of modern programming language design is block structure. Block-structured languages are characterized by nested definitional units (ALGOL blocks, PASCAL procedures, Euclid modules) having rather specialized scoping rules. In particular,…