~/talk

Shape-Constrained Array Programming with Size-Dependent Types

Talkat FHPNC 2023 · on Monday, 2023-09-04· [functional-programming]
links:none on file
links:none on file
links:none on file
slides:none on file

A dependent-type extension enforces array-size consistency in an ML-style data-parallel language and is implemented in the Futhark compiler; sizes are arbitrary expressions, treated by syntactic size equality so most checks unify at compile time and remaining mismatches use dynamic casts. Existential sizes (e.g. filter results) are tracked and repacked automatically — automated existential bookkeeping — a large subset is formalized and proved sound, and the implementation integrates with existing code with few changes.

AI-written summary · about

  1. 0:00Shape-constrained array programming intro
  2. 1:06Fuar compiler and array context
  3. 2:31Dynamically typed arrays challenges
  4. 3:55Dependent types and size programming
  5. 5:22Fuar size types examples
  6. 7:07Dot product and matrix multiplication
  7. 9:44Iota function and size constraints
  8. 10:27Explicit size arithmetic
  9. 11:50Concatenation and size polymorphism
  10. 13:15Regular arrays and rank polymorphism
  11. 14:42Irregular arrays and errors
  12. 15:47Dynamic errors and escape hatches
  13. 16:08Fuar unification-based type checking
  14. 17:40Syntactic unification limits
  15. 19:01Unflatten and split reshaping
  16. 21:08Runtime checks and type casts
  17. 22:55Compile-time vs runtime sizes
  18. 24:02Size compatibility constraints
  19. 25:25Size types allowed expressions
  20. 26:50Filter function existential sizes
  21. 29:18Unpacking existential sizes
  22. 29:40Type system formalization
  23. 31:06Empty arrays and shapes
  24. 32:28Fuar limitations non-termination
  25. 33:15Mechanization and future work
  26. 33:35Summary
  27. 33:57Questions and discussion on existential types
  28. 35:22Static vs dynamic trade-offs
  29. 36:47Explicit parameters vs checks
  30. 37:31Unification interpreter interaction
  31. 38:35Higher-order unification
  32. 39:17Reshaping functions memory
  33. 41:50Split function behavior
~/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.