Skip to content

Instantly share code, notes, and snippets.

@modernserf
Last active April 5, 2016 19:37
Show Gist options
  • Save modernserf/d43e21d1cd607b123fc4dacd05e6a0dd to your computer and use it in GitHub Desktop.
Save modernserf/d43e21d1cd607b123fc4dacd05e6a0dd to your computer and use it in GitHub Desktop.
A SNOBOL's Chance

A SNOBOL's Chance

Abstract

"Now you have two problems." Regular expressions are a handy tool for processing strings, but they have a well-earned reputation for causing confusion. But they're not the only game in town: fifty years ago, SNOBOL offered a pattern-matching language that was both easier to use and more powerful than regular expressions. Its easy to imagine an alternate timeline where SNOBOL and its successor Icon fulfill the ecological niche that Sed and Perl occupy today. However, while SNOBOL and Icon have been relegated to historical footnotes, their visionary model of computation is still accessible in JavaScript with Parsing Expression Grammars and ES2015's generators. In this talk, we'll learn how to apply age-old parsing techniques to contemporary problems, and discover what the forgotten innovations programming past of have to offer.

@modernserf
Copy link
Author

There are two problems with this abstract:

  • There are clearly two subjects, pattern matching in SNOBOL and goal-driven execution in Icon, that are only tenuously related
  • Goal-driven execution is kind of difficult to explain -- explaining what it does is the talk. Probably why it didn't catch on!

The purpose of this talk is to showcase some unusual stuff with generators, but the historical perspective is what ties the Stupid Generator Tricks together. I could use the framing of "nobody knows how to use $feature, so lets look at how it's used in $obscure_historical_programming_language" but that's literally the same thing I do in the prototypes talk and I don't want to overplay that schtick.

@modernserf
Copy link
Author

much happier with the new edit.

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