~/talk

Data All The ASTs

links:none on file
slides:none on file

Shows that Clojure compilers store ASTs as nested hash maps via tools.analyzer and split JVM specifics into tools.analyzer.jvm and an emitter library; analyzer nodes include op, form, children (a children vector that encodes execution order) and environment with namespaces and loop ids. Demonstrates building an emitter that pretty-prints s-exprs, a constant folder that evaluates whitelisted VARs at compile time, and a map optimizer that splits literal maps; passes compose with comp, run via post-walk, and the examples work end-to-end on core.async and ClojureScript-derived code.

AI-written summary · about

  1. 0:00Introduction
  2. 0:55Three phases of a compiler
  3. 2:12Read eval
  4. 2:49Closure Compiler
  5. 3:41Internal ASTs
  6. 4:14Kaleidoscope
  7. 4:42Dotnet
  8. 6:39If
  9. 8:16Children
  10. 9:21Required ASTs
  11. 11:29History of Compilers
  12. 13:14JVM Analyzer
  13. 15:54Closure Emitter
  14. 19:12Local Shadowing
  15. 20:45Open Dispatching
  16. 21:33Creating a Constant Folder
  17. 22:59Filtering Statements
  18. 23:58Filtering Variables
  19. 25:33Reo
  20. 26:01Invoke
  21. 28:21Comp
  22. 29:40CoreAsync
  23. 31:19Tools Analyzer
  24. 34:03Static Single Assignment
  25. 34:42Questions
  26. 35:23Macros
  27. 36:20Anchor
  28. 37:08Vector
  29. 37:27Analyzers
  30. 38:54Reporting Closer To A New Runtime
  31. 39:38Not Formally Defined
  32. 41:36Asynchronous Nodes
~/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.