Live Coding: Parser Kombinatoren in Haskell


Details
Erstes Live-Coding Meetup: Parser Kombinatoren in Haskell
Parser sind allgegenwärtig; HTML-Seiten im Browser, JSON oder so manches kleines selbstdefinierte Format müssen für die Verarbeitung sinnvoll zerlegt und in Datenstrukturen abgebildet werden. Findet sich keine Bibliothek, die die Arbeit abnimmt, muss der Entwickler händisch einen Parser konstruieren.
Der Aufwand mit etablierten Werkzeugen wie Yacc oder Antlr ist enorm, so dass die Quick-and-Dirty Lösung über String-Operationen und/oder reguläre Ausdrücke oft nahe liegt ( http://stackoverflow.com/a/1732454). Kurzum, Verständlichkeit und Wartbarkeit leiden stark.
Parser Kombinatoren (engl. Parser combinators) schaffen Abhilfe!
Sie ermöglichen die Konstruktion von komplizierten Parsern durch Kombinierung von kleinen, einfachen Parsern. Besonders in der Haskell-Programmierung wird fast ausschließlich auf Parser Kombinatoren gesetzt. Die Konstruktion von Parsern über Kombinatoren ist hier so einfach, robust und präzise, dass die Versuchung Parser anders zu konstruieren gar nicht erst aufkommt.
Alex Biehl wird Konzept und Anwendung der Parser Kombinatoren grundlegend vorstellen. Anschließend wird Alex interaktiv einen JSON-Parser und eine eigene Parser Kombinator-Bibliothek am Beamer entwickeln.
Zeitplan
-
Vorstellung Parser Kombinatoren (15 Minuten)
-
Implementierung eines einfachen JSON-Parser mittels Primitiven aus 1. (Live coding, 30 Minuten)
-
Implementierung der Kombinatoren (Live coding, 60 Minuten)

Live Coding: Parser Kombinatoren in Haskell