Design and Prototype a Language In Clojure
summary
Argues that Clojure makes an easy sandbox for language work and that Clojure front ends use quoted forms or text parsed with Instaparse, translation uses core.match to destructure trees, and parsing is easy while translation is the hard part. Describes an implemented language that ends up with five backends, three interpreter strategies and targets that include generated JavaScript and Ruby, recommends starting with a small backend, using confined mutable structures for translation, and iterating when designs prove impossible.
AI-written summary · about
chapters (10)
- 0:00Intro
- 1:34Agenda
- 7:48Datadriven architecture
- 11:40XML and JSON
- 15:38Design Goals
- 17:41Design Questions
- 22:55The abstraction gap
- 25:14Frontend implementation
- 28:09Translation
- 30:59Takeaways
related talks
31m"How to build a Clojure dialect"
46mInventing a language (placeholder title)
01h 01mChallenges in the Design and Implementation of Teaching Languages for EDSLs
42mImplementing Languages for Fun and Profit
39mFrom Greek to Clojure!
38mLearn you some Lisp for Great Good
30mHow Clojure Works: Understanding the Clojure Runtime
01h 04mClojure Compilation, Backwards
