~/talk

Your Program as a Transpiler

Talkat Voxxed Days Milano 2019 · on Saturday, 2019-04-13· [compilers-and-language-design, java]
slides:none on file

Runtime reflection and classpath scanning turn a simple DI demo from ~3 seconds startup into a generated binder that runs in 87 ms on the JVM and 3 ms as a native-image built with GraalVM SubstrateVM. The heavy reflections scan is moved to an annotation processor that emits Java using JavaPoet (or bytecode via ASM), plugged into Maven, so parsing/validation work happens at build time. Drools and jBPM use the same approach in the Submarine initiative to precompile DSLs and shave boot time.

AI-written summary · about

  1. 0:00Intro
  2. 2:54Boot-time vs. Run-time
  3. 3:34Example: A Quick DI Framework
  4. 5:45Example: Boot Time
  5. 10:29Transpilers vs. Compilers
  6. 11:32Are transpilers simpler than compilers?
  7. 13:39The distinction is moot
  8. 14:28Compiler-like workflows
  9. 15:29What's a compilation phase?
  10. 15:55Configuring the application
  11. 16:20Application wiring
  12. 18:26Compiling a programming language
  13. 19:04Recognize your compiler passes
  14. 19:37What makes a compiler a proper compiler
  15. 21:45Example. A Configuration File
  16. 22:01Example. An ORM Library
  17. 22:31Example. A DI Framework
  18. 24:20Compilation Phases
  19. 26:34Use proper code generation tooling
  20. 27:13Write a build plug-in
  21. 27:58DI: Annotation Processor
  22. 29:45The Submarine Initiative
  23. 33:34Startup Time
  24. 34:14Take Aways
  25. 35:01Resources
~/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.