~/talk

Execution vs. Parse-Based Language Servers

Talkat DLS 2022 · on Wednesday, 2022-12-07· [developer-experience]

A parse-based language server captures structural info during parsing to provide go-to definition, find references, outline view, hover without executing user code, achieving much IDE functionality with under 1,000 lines of glue code (examples: Newspeak, SOM, SimpleLanguage) and parsing 10k-line files in ~100 ms. Compared to Truffle’s execution-based approach (10–20 AST tag lines but requires running code) it trades some precision on globals, properties and runtime-ranked completions while otherwise working well.

AI-written summary · about

  1. 0:00Language server challenges
  2. 1:07Protocol duplication issues
  3. 3:10Truffle framework IDE support
  4. 4:15Language-agnostic server design
  5. 5:38Structural info during parsing
  6. 7:24Element IDs and lookup
  7. 9:11API design and effort reduction
  8. 9:32IDE features enabled
  9. 11:39Lines of code comparison for language servers
  10. 12:40ANTLR parser benefits
  11. 13:44Incremental parsing needs
  12. 14:27Worst-case parsing metrics
  13. 15:11Truffle alternative approach
  14. 16:35Execution-based limitations
  15. 18:18Execution vs parse-based
  16. 20:02Minimal IDE support
  17. 20:44Q&A pretty printing
  18. 23:57Q&A semantic highlighting
  19. 25:23Q&A plugin requirements
  20. 26:05Q&A AI-assisted generation
  21. 26:47Q&A AST design
~/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.