~/talk

A Type-and-Effect System for Object Initialization

Talkat OOPSLA 2020 · 2020-11-15..11-20· [compilers-and-language-design]
speakerdeck:liufengyun
links:none on file
links:none on file
slides:none on file

Type-and-effect design enforces a concretely checkable initialization discipline: cold, warm, hot types plus potentials and effects track field accesses, method calls and promotions so the checker rejects uses of uninitialized fields and enforces perfect monotonicity. Implementation is a Scala 3 compiler phase that requires zero core-type changes, emits stacktrace-style diagnostics, and runs on ~500k LOC with about 0.6 warnings/KLOC. Examples include rejected virtual-call and aliasing patterns that would yield nulls at runtime.

AI-written summary · about

  1. 0:00Intro
  2. 0:14A 50-year old problem
  3. 1:59Can we disallow usage of this before initialization?
  4. 2:54Challenge 1: virtual method calls
  5. 3:39Challenge 2: aliasing
  6. 4:35Local reasoning about initialization
  7. 5:40Three pillars of local reasoning
  8. 5:55Weak Monotonicity
  9. 6:08Stackability
  10. 6:28Scopability
  11. 7:05Abstractions: cold, warm and hot
  12. 9:16Perfect Monotonicity
  13. 10:07Drawbacks of type-based approach
  14. 10:41Type-and-effect systems
  15. 11:12Example - field access effect
  16. 11:36Example - method call effects
  17. 12:04Example - potentials
  18. 12:59Example - escape
  19. 13:55Potentials and effects
  20. 14:49Implementation
  21. 15:09Experiment
  22. 15:19Conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.