Making a simple language is complicated
summary
Describes XL, a minimalist homoiconic programming language with eight node types and a single operator for parse-tree rewrites, and examines hard problems that arise when trying to keep a language both simple and expressive. Uses five concrete example areas—numbers/expressions/statements, non-object primitives like min/max, containers (lists/arrays), text I/O/formatting, and complex numbers—to contrast limitations and subtle bugs in mainstream languages with XL’s concept-programming–guided solutions and code-generation choices.
AI-written summary · about
related talks
35mDesigning Domain-Specific Languages: A Comparison of Three Approaches by Example
45mHow to Make a Programming Language
57mWhy Programming Languages Matter
31mHomoiconicity It Is What It Is
01h 31m"Thoughts on language evolution"
41mConcatenative programming and stack-based languages
39mWhat Counts as a Programming Language
01h 13mHow to write a programming language