The concept of ‘syntax’ is commonly understood as the structure hidden in linear sequences of tokens, which in language and logic we commonly call ‘terms’. However, for the purpose of analysis and transformation, compilers use more efficient data structures to represent syntax, namely graphs. The gap between the linear (term) and graph syntax is elegantly bridged by a third formalism, namely that of string diagrams, a planar representation of terms in the categorical representation of syntax. In this tutorial talk I will show how the interplay of terms, graphs, and diagrams can help specify and implement complex analyses and transformations in compilers for higher-order programming languages, such as type inference, automatic differentiation, or closure conversion. This methodology is at the foundation of a new industrial-strength compiler being implemented currently at Huawei.
Most of the material I will discuss is based on the recent tutorial paper “Hierarchical string diagrams and applications” jointly with Fabio Zanasi (https://arxiv.org/abs/2305.18945).
Professor of Semantics of Programming Languages, University of Birmingham, UK and Programming Languages Laboratory, Huawei Central Software Institute, Edinburgh, Scotland, UK
Wed 19 JulDisplayed time zone: London change
09:00 - 10:15 | STAF Keynote / ICGT Session 1Keynotes / TAP Research Papers / ECMFA Technical Track / ICGT Research Papers at Oak Chair(s): Maribel Fernandez King's College London Remote Participants: Zoom Link, YouTube Livestream | ||
09:00 15mDay opening | ICGT Conference Opening ICGT Research Papers File Attached | ||
09:15 60mKeynote | Syntactic trinitarianism: terms, graphs, diagrams Keynotes Dan Ghica Huawei Research and University of Birmingham Pre-print |