Theoretical results in compiler design and implementation ..., Exams of Compiler Design

The aim of this session is to survey some advances in theoretical computer science and their impact on the design of progrmmning language compilers.

Typology: Exams

2022/2023

Uploaded on 05/11/2023

alley
alley 🇺🇸

4.2

(5)

256 documents

1 / 1

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
t
Tutorial
THEORETICAL RESULTS IN COMPILER DESIGN
AND
IMPLEMENTATION
Chairperson:
Speakers:
Meera Blattner, Rice University
Michael Harrison, University of California, Berkeley
Susan Graham, University of California, Berkeley
Kenneth Kennedy, Rice University
The aim of this session is to survey some advances in theoretical computer science and their impact
on the design of progrmmning language compilers. There has been considerable research activity in three
major areas: the analysis of program syntax (parsing), the detection of errors at compile time, and the
optimization of compiled code. The tutorials presented here do not purport to sunmmrize all the work
that has been done; instead, they attempt to capture the flavor of current research in these areas and
demonstrate its practical importance.
On the Parsing of General Context Free Language,
Michael Harrison
A variety of methods are known for parsing
arbitrary context free languages and these are
quickly reviewed. All of the "classical methods"
take time proportional to n 3 where n is the
length of the input. It is possible to reduce
language recognition to boolean matrix multipli-
cation and so to find an alborithm which works in
time n 2"81 or, if arcane techniques are used,
time n 2 log n . A new practical algorithm,
which takes time n3/log n and is on-line, is
introduced. (An on-llne algorithm tells if
al...a i is in the language before ever reading
ai+l. ) These new results clarify older tech-
niques and it is possible to show an intimate
and unsuspected relationship between the Cocke-
Kasami-Younger algorithm and Earley's algorithm.
of a program be determined. The standard tech-
niques of control flow analysis are reviewed and
related to "structured programming". In the
literature on programming, an "accepted" set of
control mechanisms for structured programming has
evolved; this set can be easily and clearly de-
fined using a graph gr-,,,ar. However, many authors
feel that the accepted set is too restrictive. For
example, it excludes multiple exits from loops. A
new graph grammar, which generalizes the
"admissible" control structures to include many de-
sirable extensions to the structured set, is intro-
duced and its usefulness for compiler optimization
is discussed. Optimization methods based on this
grammar are shown to be suitably efficient.
Getting High Quality Error Diagnostics from
Compilers, Susan Graham
A variety of known techniques for handling
compile-tlme detectable errors are surveyed.
These techniques, ranging from ad-hoc to highly
theoretical, are discussed in terms of their prac-
ticality, efficiency and completeness. Evidence
is presented that the most successful methods for
diagnosing and repairing errors involve a
judicious blend of ideas from both theoretical
computer science and software engineering.
Compile-Time Analysis of Pro~rsmControl Flow
Structure, Kenneth Kennedy
Many approaches to the optimization of com-
piled code require that the control flow s~ructure
23

Partial preview of the text

Download Theoretical results in compiler design and implementation ... and more Exams Compiler Design in PDF only on Docsity!

t

Tutorial

THEORETICAL RESULTS IN COMPILER DESIGN AND IMPLEMENTATION

Chairperson: Speakers:

Meera Blattner, Rice University Michael Harrison, University of California, Berkeley Susan Graham, University of California, Berkeley Kenneth Kennedy, Rice University

The aim of this session is to survey some advances in theoretical computer science and their impact on the design of progrmmning language compilers. There has been considerable research activity in three major areas: the analysis of program syntax (parsing), the detection of errors at compile time, and the optimization of compiled code. The tutorials presented here do not purport to sunmmrize all the work that has been done; instead, they attempt to capture the flavor of current research in these areas and demonstrate its practical importance.

On the Parsing of General Context Free Language, Michael Harrison

A variety of methods are known for parsing arbitrary context free languages and these are quickly reviewed. All of the "classical methods" take time proportional to n 3 where n is the length of the input. It is possible to reduce language recognition to boolean matrix multipli- cation and so to find an alborithm which works in time n2"81 or, if arcane techniques are used, time n2 log n. A new practical algorithm, which takes time n3/log n and is on-line, is introduced. (An on-llne algorithm tells if al...a i is in the language before ever reading ai+l. ) These new results clarify older tech-

niques and it is possible to show an intimate and unsuspected relationship between the Cocke- Kasami-Younger algorithm and Earley's algorithm.

of a program be determined. The standard tech- niques of control flow analysis are reviewed and related to "structured programming". In the literature on programming, an "accepted" set of control mechanisms for structured programming has evolved; this set can be easily and clearly de- fined using a graph gr-,,,ar. However, many authors feel that the accepted set is too restrictive. For example, it excludes multiple exits from loops. A new graph grammar, which generalizes the "admissible" control structures to include many de- sirable extensions to the structured set, is intro- duced and its usefulness for compiler optimization is discussed. Optimization methods based on this grammar are shown to be suitably efficient.

Getting High Quality Error Diagnostics from Compilers, Susan Graham

A variety of known techniques for handling compile-tlme detectable errors are surveyed. These techniques, ranging from ad-hoc to highly theoretical, are discussed in terms of their prac- ticality, efficiency and completeness. Evidence is presented that the most successful methods for diagnosing and repairing errors involve a judicious blend of ideas from both theoretical computer science and software engineering.

Compile-Time Analysis of Pro~rsmControl Flow Structure, Kenneth Kennedy

Many a p p r o a c h e s t o t h e o p t i m i z a t i o n o f com- p i l e d c o d e r e q u i r e t h a t t h e c o n t r o l f l o w s ~ r u c t u r e