Normalization by Origin, Not by Shape
This program is tentative and subject to change.
Memoization is about avoiding recomputation, by caching results and retrieving them when previously-seen inputs are provided again in the future. In the literature, many different ways have been proposed to efficiently (and correctly) check if such input has indeed already been seen.
Prior work largely focuses on structural equality of the keys. In many commonly-used approaches, like Python’s @cache avoiding (or accepting) observable semantic changes is the responsibility of the programmer.
Here we propose a new approach, where cache keys are considered equal if they are created in the same way. We implement our approach on top of Fearless, a language with reference and object capabilities allowing to control side effects and enforcing determinism of localized code expressions. Our technique guarantees language-enforced unobservable caching: removing the caching annotations does not change the observable program semantic.
This program is tentative and subject to change.
Mon 5 OctDisplayed time zone: Pacific Time (US & Canada) change
10:30 - 12:00 | |||
10:30 30mTalk | Normalization by Origin, Not by Shape Onward! Papers | ||
11:00 30mTalk | The Choose-Your-Own-Adventure Calculus Onward! Papers Tomas Petricek Charles University, Jan Liam Verter Charles University, Mikoláš Fromm Charles University Pre-print | ||
11:30 40mTalk | The Spreadsheet Was the Constitution Onward! Essays Abutalib Namazov Massachusetts Institute of Technology | ||