18 Annotated Bibliography

The purpose of this annotated bibliography is to supply the reader with more material and with more detail than was possible in the preceding chapters, rather than to just list the works referenced in the text. The annotations cover a considerable number of subjects that have not been treated in the rest of the book. The printed version of this book includes only those literature references and their summaries that are actually referred to in it. The full literature list with summaries as far as available can be found on the web site of this book; it includes its own authors index and subject index. This annotated bibliography differs in several respects from the habitual literature list. • The annotated bibliography consists of four sections: – Main material — papers about the main parsing techniques. – Further parsing material — papers about extensions of and refinements to the main parsing techniques, non-Chomsky systems, error recovery, etc. – Parser writing and application — both in computer science and in natural languages. – Support material — books and papers useful to the study of parsers. • The entries in each section have been grouped into more detailed categories; for example, the main section contains categories for general CF parsing, LR parsing, precedence parsing, etc. For details see the Table of Contents at the beginning of this book. Most publications in parsing can easily be assigned a single category. Some that span two categories have been placed in one, with a reference in the other. • The majority of the entries are annotated. This annotation is not a copy of the ab- stract provided with the paper (which generally says something about the results obtained) but is rather the result of an attempt to summarize the technical content in terms of what has been explained elsewhere in this book. • The entries are ordered chronologically rather than alphabetically. This arrange- ment has the advantage that it is much more meaningful than a single alphabetic list, ordered on author names. Each section can be read as the history of research 576 18 Annotated Bibliography

on that particular aspect of parsing, related material is found closely together and recent material is easily separated from older publications. A disadvantage is that it is now difficult to locate entries by author; to remedy this, an author index (starting on page 651) has been supplied.

18.1 Major Parsing Subjects

18.1.1 Unrestricted PS and CS Grammars

1. Tanaka, Eiichi and Fu, King-Sun. Error-correcting parsers for formal languages. IEEE Trans. Comput., C-27(7):605–616, July 1978. In addition to the error correction algorithms referred to in the title (for which see [301]) a version of the CYK algorithm for context-sensitive grammars is described. It requires the grammar to be in 2-form: no rule has a right-hand size longer than 2, and no rule has a left-hand size longer than its right-hand size. This limits the number of possible rule forms to 4: A → a, A → BC, AB → CB (right context), and BA → BC (left context). The algorithm is largely straightforward; for example, for rule AB → CB,ifC and B have been recognized adjacently, an A is recognized in the position of the C. Care has to be taken, however, to avoid recognizing a context for the application of a production rule when the context is not there at the right moment; a non-trivial condition is given for this, without explanation or proof.

18.1.2 General Context-Free Parsing

2. Irons, E. T. A syntax-directed for ALGOL 60. Commun. ACM, 4(1):51–55, Jan. 1961. The first to describe a full parser. It is essentially a full recursive descent left-corner parser. The published program is corrected in a Letter to the Editor by B.H. Mayoh, Commun. ACM, 4(6):284, June 1961. 3. Hays, David G. Automatic language-data processing. In H.