Talk: Writing a language in 15 minutes
by James
I gave a talk at London Ruby User Group yesterday, based on the work I’ve been doing on Heist, my Scheme interpreter project. I wrote the core of a basic Scheme interpreter in about 15 minutes as a live-coded demo (well, kind of – the coding was pre-recorded so I could focus on talking), which seemed to go down pretty well. If you missed it (or if you were there and want to watch it again in slow motion), here’s the slides and the video (just code, no narrative (sorry)). (Side note: I think Lisp may be affecting my writing style.)
The slides first: lrug-scheme-15.zip. They are S5-format HTML, introducing the Scheme language features I implement during the talk. The video shown below is available at higher resolution from Vimeo.
Scheme interpreter in 15 minutes from James Coglan on Vimeo.
Video is also available from Skills Matter if you want the narrative. The code’s not really visible in this version so combine the audio from this with the above video and you should just about piece things together.
Some relevant links:
- Heist is my main Scheme interpreter project. It has macros, tail recursion, continuations, and a reasonable chunk of the R5RS spec and its REPL auto-indents your code. It’s about 1000 lines of well-commented Ruby with a few hundred lines of Scheme, including macros for most of the syntax.
- Stickup is a tiny interpreter for a small subset of Scheme, about 150 lines long. Closer to what I present in the talk, and easier to get your teeth into.
- Treetop is what I use to generate parsers, it’s super-simple to use and lets you write a parser in no time at all.
Thanks to everyone who came along and had nice things to say about the talks, especially to whoever was telling me about about the trie data structure; Heist’s tab-completion code is now much prettier.
Comments
[...] The If Works » Blog Archive » Talk: Writing a language in 15 minutes (tags: lisp ruby dsl) [...]
Thanks for this video, it’s interesting.
Which editor do you use?
Thanks
Looks like redcar?
[...] the London Ruby User Group’s regular meetup yesterday, James Coglan gave a talk on how to implement a Scheme interpreter in 15 minutes. He recorded a video of the coding in progress beforehand so he could focus on the narration so [...]
[...] the London Ruby User Group’s regular meetup yesterday, James Coglan gave a talk on how to implement a Scheme interpreter in 15 minutes. He recorded a video of the coding in progress beforehand so he could focus on the narration so [...]
[...] de usuários de Ruby de Londres que aconteceu ontem, James Coglan deu uma palestra falando sobre como implementar um interpretador da linguagem Scheme em 15 minutos. Antes ele gravou um vídeo mostrando a codificação, assim ele poderia se concentrar na [...]
Very interesting. Thanks!
@Simone
I think it’s Gedit.