[comp.compilers] new book on parsing

ceriel@cs.vu.nl (Ceriel Jacobs) (12/03/90)

This note is to announce a book on parsing that some of you may find
interesting: "Parsing techniques: a practical guide", by Dick Grune
and Ceriel J.H. Jacobs, published by Ellis Horwood Limited.  The ISBN
is 0-13-651431-6.

Parsing (also known as syntactic analysis) is traditionally used for
programming languages and natural languages, but is also a powerful
pattern matching technique.  This book offers a clear, accessible,
and thorough discussion of many different parsing techniques with
their interrelations and applicabilities, including error recovery
techniques; the book also features an extensive, annotated
bibliography.

Parsing is treated in its own right, in greater depth than is usually
found in most compiler construction books. No advanced mathematical
knowledge is required, and the authors emphasize the intuitive and
engineering-like understanding of the processes involved in parsing,
rather than the set manipulations used in practice.

The book will be of value to all those who use a computer to recover
non-apparent structure in linearized data - computer scientists,
linguists, geologists and musicologists among others.

Contents:

Preface
1.   Introduction
  1.1   Parsing as a craft
  1.2   The approach used
  1.3   Outline of the contents
  1.4   The annotated bibliography
2.   Grammars as a generating device
  2.1   Languages as infinite sets
  2.2   Formal grammars
  2.3   The Chomsky hierarchy of grammars and languages
  2.4   VW grammars
  2.5   Actually generating sentences from a grammar
  2.6   To shrink or not to shrink
  2.7   A characterization of the limitations of CF and FS grammars
  2.8   Hygiene in grammars
  2.9   The semantic connection
  2.10  A metaphorical comparison of grammar types
3.   Introduction to parsing
  3.1   Various kinds of ambiguity
  3.2   Linearization of the parse tree
  3.3   Two ways to parse a sentence
  3.4   Non-deterministic automata
  3.5   Recognition and parsing for Type 0 to Type 4 grammars
  3.6   An overview of parsing methods
4.   General non-directional methods
  4.1   Unger's parsing method
  4.2   The CYK parsing method
5.   Regular grammars and finite-state automata
  5.1   Applications of regular grammars
  5.2   Producing from a regular grammar
  5.3   Parsing with a regular grammar
6.   General directional top-down methods
  6.1   Imitating left-most productions
  6.2   The pushdown automaton
  6.3   Breadth-first top-down parsing
  6.4   Eliminating left-recursion
  6.5   Depth-first (backtracking) parsers
  6.6   Recursive descent
  6.7   Definite Clause grammars
7.   General bottom-up parsing
  7.1   Parsing by searching
  7.2   Top-down restricted breadth-first bottom-up parsing (Earley)
8.   Deterministic top-down methods
  8.1   Replacing search by table look-up
  8.2   LL(1) grammars
  8.3   LL(k) grammars
  8.4   Extended LL(1) grammars
9.   Deterministic bottom-up parsing
  9.1   Simple handle-isolating techniques
  9.2   Precedence parsing
  9.3   Bounded-context parsing
  9.4   LR methods
  9.5   LR(1)
  9.6   LALR(1) parsing
  9.7   Further developments of LR methods
  9.8   Tomita's parser
  9.9   Non-canonical parsers
  9.10  LR(k) as an ambiguity test
10.   Error handling
  10.1  Detection versus recovery versus correction
  10.2  Parsing techniques and error detection
  10.3  Recovering from errors
  10.4  Global error handling
  10.5  Ad hoc methods
  10.6  Regional error handling
  10.7  Local error handling
  10.8  Suffix parsing
11.   Comparative survey
  11.1  Considerations
  11.2  General parsers
  11.3  Linear-time parsers
12.   A simple general context-free parser
  12.1  Principles of the parser
  12.2  The program
  12.3  Parsing in polynomial time
13.   Annotated bibliography
  13.1  Miscellaneous literature
  13.2  Unrestricted PS and CS grammars
  13.3  Van Wijngaarden grammars and affix grammars
  13.4  General context-free parsers
  13.5  LL parsing
  13.6  LR parsing
  13.7  Left-corner parsing
  13.8  Precedence and bounded-context parsing
  13.9  Finite-state automata
  13.10 Natural language handling
  13.11 Error handling
  13.12 Transformations on grammars
  13.13 General books on parsing
  13.14 Some books on computer science
Author index
Index
--
Ceriel Jacobs, Dept. of Mathematics and Computer Science, Vrije Universiteit,
De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands
Voice: +31 20 5485577 	Email:	ceriel@cs.vu.nl		Fax: +31 20 427705
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.