GRD - a generalised recursive descent parsing algorithm

GRD is a style of parsing algorithm that allows you to protoype new languages without regard to the underlying parsing technology. Once a working prototype is obtained, GRD based parser generators can be used to refine the language specification to improve parser performance.

The heart of GRD is a backtracking recursive descent parsing algorithm that can handle grammars requiring arbitrary amounts of lookahead and which even behaves correctly when presented with ambiguous grammars. A faster version uses a new property called follow determinism to decide when to truncate the back tracking search.

There are two technical reports that describe some of the background to GRDP. Postscript versions are available here:

Generalised Recursive Descent: Part 1 Language design and parsing

Generalised Recursive Descent: Part 2 some underlying theory

You can read our 1998 Compilers Conference paper about GRD here:

Generalised Recursive Descent Parsing and Follow determinism





  • Contact us
  • Location map
  • Site map
  • Terms & conditions