Content deleted Content added
No edit summary |
No edit summary |
||
Line 1:
Recursive ascent parsing is a technique for implementing an [[LALR]] parser which uses mutually-recursive functions rather than tables. Thus, the parser is ''directly encoded'' in the host language similar to [[recursive descent]]. Direct encoding usually yields a parser which is faster than its table-driven equivalent<ref>{{cite web|title=Very fast LR parsing|author=Thomas J Penello|year=1986|url=http://portal.acm.org/citation.cfm?id=13310.13326}}</ref> for the same reason that compilation is faster than interpretation. It is also (nominally) possible to hand edit a recursive ascent parser, whereas a table-implementation is nigh unreadable to the average human.
Recursive ascent was first described by Thomas Penello in his article {{cite web|title=Very fast LR parsing|url=http://portal.acm.org/citation.cfm?id=13310.13326}} in 1986. The technique was later expounded upon by G.H. Roberts<ref>{{cite web|title=Recursive ascent: an LR analog to recursive descent|year=1988|author=G.H. Roberts|url=http://portal.acm.org/citation.cfm?id=47907.47909}}</ref> in 1988 as well as Kruseman Aretz<ref>{{cite web|title=A functional LR parser|author=Kruseman Aretz|year=1992|url=http://portal.acm.org/citation.cfm?id=146986.146994}}</ref> in 1992 as part of the textbook, ''Theoretical Computer Science'' also by Leermakers and Augusteijn. An extremely readable description of the technique was written by Morell and Middleton<ref>{{cite web|title=Recursive-ascent parsing|author=Larry Morell and David Middleton|year=2003|url=http://portal.acm.org/citation.cfm?id=770849}}</ref> in 2003.
== Summary ==
|