Tuesday, June 28, 2016
6:00 pm - 8:00 pm
Atomic Object, 941 Wealthy St, Grand Rapids, MI
From wire protocols to DSLs, applying structure to raw data is a core part of programming. The best tools for the job, parsers, have a scary reputation -- developers often settle for others (such as regular expressions) and suffer through their limitations instead. Parsers don't have to be intimidating, though -- they may be a huge branch of computer science, but a little knowledge goes a long way.
In this talk, I'll focus on two parsing techniques that are widely applicable and independent of language or platform-specific libraries.
The first, recursive descent parsing, is a technique that belongs in everyone's toolkit. It can be built up from only fundamental constructs, yet is able to parse practical languages. It is particularly handy for creating DSLs and other tools where usability is important.
The second, a combination of Earley and intersection parsing, is a more advanced algorithm. While comparatively obscure, it's worth knowing because it can deftly handle data that would tie most common parsers in knots. When a grammar is inherently ambiguous, it can even return all possible interpretations of the input at once, using a familiar and space-efficient data structure in an unexpected way.
Scott works on embedded and distributed systems at Helium. His other interests include data compression, testing tools, cooking, and electronics.
Scott can often be found bicycling around Grand Rapids, MI.