Reference. Symbolic and automatic differentiation of languages
Cite
Cited by (1)
Intrinsic Verification of Parsers and Formal Grammar Theory in Dependent Lambek Calculus intrinsic-verification-of-parsers
We present Dependent Lambek Calculus (Lambek), a domain-specific dependent type theory for verified parsing and formal grammar theory. In Lambek, linear types are used as a syntax for formal grammars, and parsers can be written as linear terms. The linear typing restriction provides a form of intrinsic verification that a parser yields only valid parse trees for the input string. We demonstrate the expressivity of this system by showing that the combination of inductive linear types and dependency on non-linear data can be used to encode commonly used grammar formalisms such as regular and context-free grammars as well as traces of various types of automata. Using these encodings, we define parsers for regular expressions using deterministic automata, as well as examples of verified parsers of context-free grammars.
We present a denotational semantics of our type theory that interprets the linear types as functions from strings to sets of abstract parse trees and terms as parse transformers. Based on this denotational semantics, we have made a prototype implementation of Lambek using a shallow embedding in the Agda proof assistant. All of our examples parsers have been implemented in this prototype implementation.
Cites 41 works (2 here)
With notes (2)
Applicative programming with effects mcbride-2008-applicative
Derivatives of Regular Expressions brzozowskiDerivativesRegularExpressions1964
External (39)
- Source repository for 'Symbolic and automatic differentiation of languages' (2021)
- Combining predicate transformer semantics for effects: a case study in parsing regular languages (2020)
- The Agda standard library (2020)
- Generalized convolution and efficient language recognition (2019)
- Weighted automata (Droste, Kuske; unpublished) (2019)
- The simple essence of automatic differentiation (2018)
- Dualizing generalized algebraic data types by matrix transposition (2018)
- Formal languages, formally and coinductively (2017)
- Well-founded recursion with copatterns and sized types (2016)
- Equational reasoning about formal languages in coalgebraic style (Abel, draft) (2016)
- Convolution as a unifying concept: Applications in separation logic, interval calculi, and concurrency (2016)
- Intrinsic verification of a regular expression matcher (Korkut, Trifunovski, Licata; draft) (2016)
- Propositions as types (2015)
- Copatterns: Programming infinite structures by observations (2013)
- A constructive theory of regular languages in Coq (2013)
- Certified Parsing of Regular Languages (2013)
- Yacc is dead (2010)
- Regular expressions in Agda (2009)
- A Brief Overview of Agda – A Functional Language with Dependent Types (2009)
- Dependently typed programming in Agda (2009)
- Combinator Parsing: A Short Tutorial (2009)
- Semi-continuous sized types and termination (2008)
- Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation (2nd ed.) (2008)
- Derivatives of rational expressions with multiplicity (2005)
- Some recent applications of semiring theory (Golan) (2005)
- Algebraic Foundation of Statistical Parsing: Semiring Parsing (Liu, PhD thesis) (2004)
- Parsec: A practical parser library (2001)
- Generalizing generalized tries (2000)
- The art of computer programming, volume 3: (2nd ed.) sorting and searching (1998)
- Parsing Inside-Out (Goodman, PhD thesis) (1998)
- Partial derivatives of regular expressions and finite automaton constructions (1996)
- Monadic parser combinators (Hutton, Meijer) (1996)
- A generalization of the trie data structure (1995)
- A tutorial on co-induction and functional programming (1995)
- On automatic differentiation (Griewank) (1989)
- Intuitionistic Type Theory (Martin-Löf, Bibliopolis) (1984)
- The algebraic theory of context-free languages (1963)
- On the definition of a family of automata (1961)
- Über die gegenseitige Lage gleicher Teile gewisser Zeichenreihen (Thue) (1912)