skip to main content
10.1145/800229acmconferencesBook PagePublication PagesplanConference Proceedingsconference-collections
SIGPLAN '79: Proceedings of the 1979 SIGPLAN symposium on Compiler construction
ACM1979 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
Denver Colorado USA August 6 - 10, 1979
ISBN:
978-0-89791-002-6
Published:
06 August 1979
Sponsors:

Bibliometrics
Abstract

No abstract available.

Skip Table Of Content Section
Article
Free
Data abstraction: A static implementation strategy

A description of the implementation of the data abstraction mechanism for the Model programming language is discussed. The Model programming language utilizes a “static” approach to data abstraction in that abstract concepts are expanded by early phases ...

Article
Free
A model for implementing Euclid modules and type templates

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 ...

Article
Free
Program checking

In languages such as Pascal, the programmer can arrange to have the compiler check such things as the range of the value of a variable only by defining a new type or sub-type. I have investigated how more powerful checking facilities might be provided ...

Article
Free
Dynamic allocation of space for attribute instances in multi-pass evaluators of attribute grammars

Attribute grammars [14] have proved useful as the basis of input languages for compiler-compilers. Many algorithms have evolved which can be used to automatically produce an evaluator for a given attribute grammar. The task of an evaluator is to compute ...

Article
Free
Semantic charts: A diagrammatic approach to semantic processing

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 ...

Article
Free
Hashed symbol tables for languages with explicit scope control

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 ...

Article
Free
A code generator generator language

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 ...

Article
Free
Code generation in a machine-independent compiler

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 ...

Article
Free
Implementation of an Interactive Programming System

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.

Article
Free
Automatic storage optimization

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 ...

Article
Free
Porting the Zed compiler

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 ...

Article
Free
Implementation of a portable Fortran 77 compiler using modern tools

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 ...

Article
Free
The CIMS PL/I compiler

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 ...

Article
Free
Construction of a transportable, multi-pass compiler for extended Pascal

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 ...

Article
Free
Compiler design for efficient code generation and program optimization

This paper describes the design of a compiler for an extended PASCAL with particular emphasis on code generation and optimization. The design objectives are: compiler reliability, code generator portability and object code efficiency.

Designing a ...

Article
Free
On implementing separate compilation in block-structured languages

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 ...

Article
Free
The use of transition matrices in a recursive-descent compiler

Transition matrices are a well-known tool for the construction of bottom-up compilers. This paper discusses the use of transition matrices in the recursive-descent compiler for the structured assembly language PL/85. In this compiler, a transition ...

Article
Free
An all(1) compiler generator

Aparse is a flexible and modular system for generating efficient one-pass compilers from attributed grammar specifications. The system is of particular interest in that it combines recent research in attributed parsing and error-correction into a ...

Article
Free
Global context recovery: A new strategy for parser recovery from syntax errors

Methods for error recovery in parsing a deterministic, context-free language need not be derived by ad hoc means. When fixed, table-driven parsing algorithms are used the error recovery procedures can also make use of knowledge about the grammar for the ...

Article
Free
Practical LR error recovery

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 ...

Article
Free
Efficient computation of LALR(1) look-ahead sets

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, ...

Article
Free
An intermediate language for source and target independent code optimization

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 ...

Article
Free
Machine-independent PASCAL code optimization

A variant of PASCAL pseudo-code which is suitable for optimization is presented. This new language, Universal pseudo-code, is designed to be easily extended to meet the needs of a variety of target machines. The language is further designed such that ...

Article
Free
A comparison of PASCAL intermediate languages

PASCAL P-code is an aid when transporting PASCAL to new machines and environments. Implementations using P-code may modify the P-code. This modification process may require some creative effort. Some of this effort may be eliminated by looking at ...

Article
Free
Predicting the effects of optimization on a procedure body

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 ...

Article
Free
Machine-independent register allocation

The context of this paper is a machine-independent Pascal optimizer that transforms an intermediate stack-machine pseudo-code program into a generally smaller and faster pseudo-code program. The emphasis of this current paper is on the approach taken ...

Article
Free
The design of a global optimizer

We are constructing a compiler for a high level systems and applications programming language. Because the compiler is required to generate efficient object code, a global optimization phase and register allocation phase are an integral part of the ...

Contributors

Index Terms

  1. Proceedings of the 1979 SIGPLAN symposium on Compiler construction

    Recommendations