String Diagrams for $\lambda$-calculi and Functional Computation
Dan Ghica, Fabio Zanasi

TL;DR
This tutorial introduces string diagrams and hierarchical hypergraph syntax as a novel, category-theoretic approach to modeling lambda calculus and functional programming, emphasizing applications in semantics and program transformations.
Contribution
It develops a hierarchical hypergraph syntax from categorical models, providing an alternative to traditional syntax for lambda calculus and functional programming.
Findings
Hierarchical hypergraph syntax improves over linear term syntax.
Categorical models facilitate advanced program transformations.
Application to semantics and type inference enhances language analysis.
Abstract
This tutorial gives an advanced introduction to string diagrams and graph languages for higher-order computation. The subject matter develops in a principled way, starting from the two dimensional syntax of key categorical concepts such as functors, adjunctions, and strictification, and leading up to Cartesian Closed Categories, the core mathematical model of the lambda calculus and of functional programming languages. This methodology inverts the usual approach of proceeding from syntax to a categorical interpretation, by rationally reconstructing a syntax from the categorical model. The result is a graph syntax -- more precisely, a hierarchical hypergraph syntax -- which in many ways is shown to be an improvement over the conventional linear term syntax. The rest of the tutorial focuses on applications of interest to programming languages: operational semantics, general frameworks for…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsNatural Language Processing Techniques · Semantic Web and Ontologies · Logic, programming, and type systems
