Creating Languages - racket/racket GitHub Wiki
Learning
- The Racket Guide: (17) Creating Languages
- Beautiful Racket: Make your own programming languages with Racket by Matthew Butterick (book)
- Creating Languages in Racket By Matthew Flatt (includes code) (github)
- Macros and Languages in Racket
- Programming Languages: Application and Interpretation by Shriram Krishnamurthi
- Implement a programming language in 7 lines of Scheme by Matt Might
Tools
- Rosette helps develop synthesis and verification tools for new languages - https://docs.racket-lang.org/rosette-guide/index.html https://emina.github.io/rosette/
- Turnstile help Racket programmers create typed languages- https://docs.racket-lang.org/turnstile/
- Sham: A DSL for Fast DSLs - https://arxiv.org/abs/2005.09028 / https://github.com/rjnw/sham
- Writing Languages in Qi
- https://github.com/michaelballantyne/syntax-spec (beta)
Videos
- All Programming Language Suck? Just Build Your Own! – Language-Oriented Programming with Racket
- Make your own language with Racket by Jérôme Martin at FOSDEM2019
- (#lang) Video at BOB 2018
- Building languages in an afternoon
- #lang overscan: Transform live video streams with code and a REPL!!
- Building Languages in Racket video code (tutorial at Racket-Con 2012)
- First lecture of Brown cs173 programming languages course rest: http://cs.brown.edu/courses/cs173/2012/Videos/
Language Design Resources on language design
Example Languages Example languages built on or with the Racket toolchain
Resources
-
Intro to macros (or start with Fear of Macros: A practical guide to Racket macros by Greg Hendershott. )
-
Syntax-Parse: introduction to writing robust macros with syntax-parse and syntax classes
-
Advanced Racket Macros by Jay McCarthy
Search: #lang
in the documentation
Papers
A Programmable Programming Language by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, Sam Tobin-Hochstadt. Communications of the ACM, March 2018, Vol. 61 No. 3, Pages 62-71. DOI 10.1145/3127323
Creating Languages in Racket by Matthew Flatt. Communications of the ACM, January 2012, Vol. 55 No. 1, Pages 48-56. DOI 10.1145/2063176.2063195
Lexer and Parser Generators in Scheme by Scott Owens, Matthew Flatt, Olin Shivers & Benjamin McMullan.