Latte: Lightweight Aliasing Tracking for Java
summary
Latte adds a lightweight aliasing layer to Java that only requires annotations on parameters and fields while inferring local variable annotations, tracks aliasing on the stack, and allows destructive reads without changing language or runtime semantics. It uses three annotations (shared, unique, owned), proves uniqueness through local inference, and demonstrates modeling a mutable stack where push preserves uniqueness. Current limits: conservative fallback to shared when modular/call‑context aliasing is unclear and no large real‑world evaluation yet.
AI-written summary · about
chapters (15)
- 0:00Latte project introduction
- 1:39Aliasing tracking motivation
- 3:04Challenges in aliasing solutions
- 6:13Latte approach and annotations
- 8:59Unique references example
- 11:05Achievements and work
- 12:50Developer experience goals
- 14:38Q&A: calling contexts
- 18:54Nullness and defaults
- 21:00Q&A: aliasing levels
- 23:15Simplicity vs expressiveness
- 26:23Verification integration
- 29:10Design of 'owned' annotation
- 30:14Usability evaluation
- 31:43Developer mental models
related talks
33mLatte: Lightweight Aliasing Tracking for Java
25mLiquidJava:Catch Bugs at Compile Time with Liquid Types
50mRevealing the magic behind Java annotations
23mThe Java Features You’re Missing Out On
51mJlama: A Native Java LLM inference engine
44mJava for AI
42mJava, Today and Tomorrow
52mLow Latency Java in the Real World: LMAX Exchange & the Zing JVM
