~/talk

Practical Normalization by Evaluation for EDSLs

links:none on file
slides:none on file

Provides a practical recipe using Normalization by Evaluation to get the fusion benefits of shallow embeddings while keeping deep-syntax for codegen: implemented as a Haskell typeclass with a semantic domain and reflect/reify operations, evaluator and reifier. Works on integers, arrays and stateful effects to eliminate intermediate arrays and collapse redundant puts/gets, even delaying case analysis to avoid extra allocations. Adds a gluing trick to avoid unwanted eta-expansion; sums and effects need extra care. Code and larger instance choices live on the project GitHub and the approach proves modular and effective on realistic examples.

AI-written summary · about

  1. 0:00Introduction and setup
  2. 4:26Deep vs shallow embedding
  3. 11:19Normalization by evaluation
  4. 17:32Implementing array normalization
  5. 20:40Examples and fusion results
  6. 24:14Practical considerations and summary
  7. 28:12Q&A session
~/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.