
Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
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
1 / 1
This page cannot be seen from the preview
Don't miss anything!

Tutorial
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