Preliminary Definitions on Languages and Grammars.- Exploring Search Spaces.- Chop-and-Expand Parsers for Context-Free Languages.- Parsers for Deterministic Context-Free Languages: LL(k) Parsers.- Parsers for Deterministic Context-Free Languages: LR(k) Parsers.- Parsers for Operator Grammars and Parser Generators.- Visits of Trees and Graphs and Evaluation of Expressions.- Path Problems in Directed Graphs.- String Matching.- Supplementary Topics.- List of Algorithms and Programs.- Index.- Bibliography.
Prof. Alberto Pettorossi is a professor of Theoretical Computer Science at the Università di Roma, Tor Vergata. He has extensive experience teaching automata, languages, algorithms, data structures, and verification to undergraduate and graduate students. His research interests and academic publications are in the areas of program transformation, program verification, and software model checking.
In this book the author presents some techniques for exploring trees and graphs. He illustrates the linear search technique and the backtracking technique, and as instances of tree exploration methods he presents various algorithms for parsing subclasses of context-free languages. He also illustrates some tree and graph exploration and manipulation methods by presenting, among others, algorithms for visiting trees, evaluating Boolean expressions, proving propositional formulas, computing paths in graphs, and performing string matching.
This book has been used for advanced undergraduate and graduate courses on automata and formal languages, and assumes some prior exposure to the basic notions in that area. Sample programs are presented in Java and Prolog.