Sat 22 Jan 2022 14:00 - 14:45 at Salon III - Session 3 Chair(s): Jesper Cockx, Richard A. Eisenberg

Implementations of type systems, logics and programming languages must often answer the question of how to represent and work with binding structures in terms. While there may not be a one-size-fits-all solution, I would like to understand the trade-offs that various approaches to binding make in terms of execution speed and simplicity of implementation. To that end, I have been constructing a benchmark platform using the Haskell programming language and have been gathering multiple implementations of binding for comparison and experimentation.

I plan to use this repository as a focus for a discussion about the following questions related to aggregating and comparing implementations of binding.

  • What should a benchmark suite contain? Should the focus be on substitution, normalization, alpha-equivalence, or other operations? So far, I’ve focused my efforts on capture-avoiding substitution, but what other operations are important?

  • What optimizations can we evaluate? Delaying fusing and discarding trivial substitutions seems to be effective, are there other ways to optimize these operations?

  • What about library support? What is the cost of providing a simple interface to these operations?

  • What is used in practice?

Sat 22 Jan

Displayed time zone: Eastern Time (US & Canada) change

13:30 - 14:45
Session 3WITS at Salon III
Chair(s): Jesper Cockx TU Delft, Richard A. Eisenberg Tweag
13:30
15m
Talk
Tries that matchRemote
WITS
Sebastian Graf Karlsruhe Institute of Technology
13:45
15m
Talk
Gotta prove fast: building an ecosystem for effortless native compilation of tacticsRemote
WITS
Sebastian Ullrich Karlsruhe Institute of Technology
14:00
45m
Other
Benchmarking Binding (discussion)In-Person
WITS
Stephanie Weirich University of Pennsylvania
14:00
45m
Other
Fancy module systems (discussion)Remote
WITS
Jesper Cockx TU Delft