> * “No one cares much about LR(1) parsers anymore,” she said, referring to one of the classic tools of language processing. The remark saddened me because the theory of parsing is a thing of beauty. *<p>No one cares about LR parsing because:<p>1. It's about speed and memory efficiency, throwing other requirements into the wind, like interoperability and debuggability. LR runs on what is de facto its own virtual machine (shift-reduce automaton) over its own machine language (an incomprehensible table). This architecture known to most hackers in the form of tools like Yacc, where this is done in absolutely the most minimal way possible just to get the parser working. If you write a recursive descent parser, you can put an ordinary breakpoint on a function which corresponds to a grammar rule, and instantly see rules that are involved, just by looking at the ordinary stack trace. "Oh, we we got here by way of trying to parse an expression, then a term, then a factor, then an identifier". Moreover, unless you're spectacularly terrible at programming, your parser is reentrant.<p>2. If you have lots of memory, fast CPUs, and the stuff being parsed isn't very large, newer algorithms (or old ones that were not practical in the 1960's) are now practical. Why bother with LR when you can just recursively match, with backtracking (infinite lookahead LL rediscovered as "PEG"), and, as a bonus, define the entire syntax in one grammar, down to the lexical tokens.<p>3. Parsing is about syntax, and syntax isn't semantics. Once hackers mature, they lose interest in syntax, and consequently in stuff like LR parsing. Lisp shows us that we can get ahead by ditching the surface syntax. The best family of languages for language research, ironically, pretty much ignored and survived the whole LR craze, using recursive scanning routines dispatched by one or two characters of input. Once you know that parsing produces a tree, and that same tree is denoted by a tidy, unambiguous S-expression that requires no advanced parsing techniques, and that semantics only begins after that syntax tree, the excitement for parsing wanes, at least a little.