A Transient Semantics for Typed Racket
Ben Greenman (Brown University, USA), Lukas Lazarek (Northwestern, University, USA), Christos Dimoulas (Northwestern University, USA), Matthias, Felleisen (Northeastern University, USA)

TL;DR
This paper explores applying Transient semantics to a rich migratory type system like Typed Racket, revealing implementation challenges and performance trade-offs, and providing insights for language designers and theoreticians.
Contribution
It demonstrates the difficulties of adapting Transient semantics to a complex migratory type system and offers practical guidance for implementing Transient checks in such languages.
Findings
Transient blame strategy is problematic in rich migratory systems.
Shallow Typed Racket outperforms Deep Typed Racket when blame checks are disabled.
Adapting Transient semantics requires careful consideration of blame strategies.
Abstract
Mixed-typed languages enable programmers to link typed and untyped components in various ways. Some offer rich type systems to facilitate the smooth migration of untyped code to the typed world; others merely provide a convenient form of type Dynamic together with a conventional structural type system. Orthogonal to this dimension, Natural systems ensure the integrity of types with a sophisticated contract system, while Transient systems insert simple first-order checks at strategic places within typed code. Furthermore, each method of ensuring type integrity comes with its own blame-assignment strategy. Typed Racket has a rich migratory type system and enforces the types with a Natural semantics. Reticulated Python has a simple structural type system extended with Dynamic and enforces types with a Transient semantics. While Typed Racket satisfies the most stringent gradual-type…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Parallel Computing and Optimization Techniques · Software Engineering Research
