Transitioning from Structural to Nominal Code with Efficient Gradual Typing
summary
MonNom is an object language that lets untyped structural records and lambdas dynamically acquire nominal interfaces (but not classes) via monotonic casts, using 64-bit value representation and a novel call tags technique to implement efficient interface-method lookup. The artifact implements migration steps and benchmarks (notably intersort sorting 100,000 integers) showing most intermediate configurations speed up as types are added and the fully typed MonNom matches Java/C#/JavaScript performance.
AI-written summary · about
chapters (12)
- 0:00Intro
- 0:16Gradual Typing
- 3:18MonNom Objects
- 4:12MonNom Casts
- 5:29Cross-Discipline Guarantees
- 6:21Cross-Paradigm Guarantees
- 9:02Representation
- 9:40Call Tags
- 10:56Experimental Setup
- 11:56intersort
- 12:51sieve & float
- 13:04Summary
related talks
43mType Clash: When Structural and Nominal Systems Collide
22mIs Space-Efficient Polymorphic Gradual Typing Possible?
33mTyped Clojure: From Optional to Gradual Typing
21mGradual Typing is the best!
11mThe Secrets of Polymorphic Variants
49mThe Trouble With Types
01h 00mDynamic Polymorphism with Metaclasses and Code Injection
16mA metalanguage for multi-phase modularity
