Day in, day out, the semanticist checks types and simplifies terms. Can the digital computer help with these calculations? In fact, modern programming languages offer exactly the modularity features that make it easy to try fragments out and scale them up. To show how, we express so-called extensible interpreters as functional programs and apply the technique to natural-language semantics. Specifically, we work our way from the simply typed lambda calculus and a context-free grammar to a dynamic treatment of quantification and anaphora. Striving to be comprehensible and informative to both linguists and programmers, we use the programming language Haskell without assuming specific knowledge of it.
This short course on computational Montagovian semantics has been presented together with Chung-chieh Shan at the North American Summer School on Logic, Language and Information (NASSLLI 2010) < http://www.indiana.edu/~nasslli/ > at Indiana University, Bloomington, IN, USA on June 24 and 25, 2010. This page collects the notes for the course in the form of commented Haskell code.
Ideally the course would be a beginning of a beautiful friendship -- or collaboration of natural- and programming-language researchers. At the very least, the course would aid their mutual comprehension.
We have a grander goal in mind. We hope that linguists will draw more advantage of the ideas of side effects, continuations, regions, staging (a.k.a. quotation) and dependent types. These ideas happen to have been developed more in programming language theory and are only recently being consciously applied to natural language semantics. Linguistic applications of these ideas are certain to prompt further development, benefiting the programming language theory as well. We look forward to computer scientists learning from linguists how to build theories of programming language competence. Emotional arguments about ``the best'' programming language should to be replaced by a scientific, predictive theory of how programmers perceive and apply a programming language or its feature.
language-map.pdf [19K]
The map of languages and interpretations
language-map.pdf [19K]
The map of languages and interpretations
CFG1EN.hs [<1K]
Definitions (or, `bookmarks') and CFG-like derivations
CFG1Sem.hs [<1K]
Semantic interpretation of a CFG derivation
CFG2EN.hs [<1K]
CFG2Sem.hs [<1K]
Same as before, but now with type annotations
CFG3EN.hs [2K]
Introducing type constants; accomplishing the goal that our terms represent all and only valid CFG derivations
CFG3Sem.hs [2K]
Type functions: from syntactic categories to semantic types
CFG4.hs [2K]
Unifying syntax with semantics
We have demonstrated how to interpret syntactic (CFG) derivations in several ways. We apply the same approach to semantic forms, interpreting a semantic formula so to evaluate it in a particular world, to print it out, or to simplify it.
Semantics.hs [7K]
The grammar of the language of denotations, and its many interpretations
CFGJ.hs [3K]
Interpreting a CFG derivation as a string in Japanese
QCFG.hs [4K]
Adding QNP in the tradition of Montague
QCFGJ.hs [2K]
Likewise, extending the Japanese interpretation
QHCFG.hs [3K]
A different way to add quantification, relying on higher-order abstract syntax (HOAS). We thus attempt a `rational reconstruction' of Montague's general approach of `administrative pronouns', which gave rise to Quantifier Raising (QR).
Dynamics.hs [4K]
Implementing de Groote's approach: extending our fragment with pronouns, and the language of denotations with state
CCG.hs [6K]
A sketch of Combinatorial Categorial Grammar (CCG)
Tower.hs [8K]
Chung-chieh Shan's implementation of the continuation semantics of
Chung-chieh Shan and Chris Barker. 2006. Explaining crossover and superiority as left-to-right evaluation.
Linguistics and Philosophy 29(1):91-134.
and the tower notation of
Chris Barker and Chung-chieh Shan. 2008. Donkey anaphora is in-scope binding. Semantics and Pragmatics 1(1):1-46.
oleg-at-pobox.com or oleg-at-okmij.org
Your comments, problem reports, questions are very welcome!
Converted from HSXML by HSXML->HTML