Skip to content

Instantly share code, notes, and snippets.

@jeffreykegler
Last active August 29, 2015 14:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeffreykegler/9d888a38cc939faa3833 to your computer and use it in GitHub Desktop.
Save jeffreykegler/9d888a38cc939faa3833 to your computer and use it in GitHub Desktop.
Notes on Andrew Rodland's Talk

Andrew Rodland at the 2014 YAPC:NA gave a talk on Marpa. A video is available. Here are my notes on it.

The talk is very well-organized, and well-written. Andrew was a last minute fill-in, so there are glitches in the actual delivery of the material, but the material itself is near perfect.

At 4:20, it says that Marpa can modify its grammar at run time. Pedantically, this is not actually true. In theory, Marpa requires a fixed grammar, known before the parse starts. However Marpa is powerful enough and has enough features that it may seem as if you have a modifiable grammar. For example, if you have two different grammars and want to switch back and forth, you simply combine both into a single grammar. If there are no shared symbols, or if all shared symbols have the same syntax in both grammars, the combination will run in linear time and space if each of the two grammars would be linear when run separately. This makes it seem like you're modifying the grammar but, strictly speaking, you are not. Various other tricks, such as the Ruby Slippers, also allow you to get the impression you're actually changing the grammar on the fly.

At 11:42, the claim that Marpa can modify its grammar is repeated.

From 15:58 to around 24:25, Andrew tells a story about his personal research, research which was extremely important in how Marpa developed. But just as it can be easier to understand my research when Andrew describes it than when I do, Andrew's description of his own work goes quickly and can be hard to follow. On your first listen, do not skip this section, but do be content to come away with just a general impression, instead of following every word.

The converse is true, by the way. Everywhere else in the talk, it is well worth trying to follow every word of it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment