Runtime-Extensible Parsers

Paper Runtime-Extensible Parsers (PDF)
Konferenz CIDR 2025
Blogbeitrag Blogbeitrag auf duckdb.org

Zusammenfassung

Trotz ihrer zentralen Rolle bei der Anfrageverarbeitung haben Parser im Datenmanagement kaum Beachtung gefunden. Moderne Systeme begnügen sich mit uralten Parser-Generatoren. Diese erzeugen monolithische, unflexible und unnachsichtige Parser, die Innovationen in Anfragesprachen behindern und Nutzerinnen und Nutzer frustrieren. Wir argumentieren, dass Parser mit modernen Abstraktionen wie Parsing Expression Grammars (PEG) neu geschrieben werden sollten: Sie erlauben dynamische Änderungen der akzeptierten Anfragesyntax und eine bessere Fehlerbehandlung. In diesem Beitrag diskutieren wir, wie sich Parser mit PEG neu entwerfen lassen, und prüfen unsere Empfehlungen experimentell hinsichtlich Wirksamkeit und Effizienz.

Implementierung

DuckDBs Autovervollständigung ist mit einem PEG-basierten Parser umgesetzt. DuckDB v1.5 liefert einen experimentellen Parser.