Write a programming language, get fudge! From now until the end of the school year (June 30), we're also running a programming language jam, where you'll also have the chance to win a copy of Crafting Interpreters.
The gist: write a programming language → record a demo video with Asciinema and write a quick guide on how to get up and running with your programming language (including build instructions, if any!) → open a PR with a link to your repo containing these three things and your name, #ship a demo on Slack, and then submit the form here.
Check out #building-programming-languages on the Slack to hang out with fellow teenagers hacking on programming languages.
What if you don't know how to write a programming language? Never fear, Orpheus the dinosaur to the rescue! We've written a guide on writing a programming language from scratch that'll teach you how to write a programming language called Easel:
Screen.Recording.2024-05-08.at.2.26.14.PM.mov
By the end of it, you'll have written a programming language and learned about how tree-walk interpreters work! Give it a spin at https://easel.hackclub.com.
Here's the criteria:
- Minimally, should have the following features: variables, looping (think: for/while loops), conditional branching (think: if/else statements) and some form of recursion (think: functions). Why? These are what make a programming language Turing-complete.
That's it! During the jam, the community will vote on what language does the following the best:
- Creativity and silliness!
- Bonus points if you explain your implementation.
And the top five will get a hard copy of Crafting Interpreters while we're running our programming jam!
Record a demo of your programming language in action, preferably using Asciinema. Instructions can be found here for how to install Asciinema and then record your terminal with it. After you've got a recording of you running your programming language, grab the Asciinema link, which will look something like https://asciinema.org/a/590145.
Open a PR by heading over to Pull requests and opening a PR. Your PR should have the following:
- A link to your repo, which should have an
examples
folder with at least one example other people can run and a README that describes how to build and run your repo and an explanation of the syntax and what makes it special. - A copy of your repo inside a folder inside
languages
.
A good example to take a look at is Arson.
When you're done, you can submit the form here to move on to step four!
This one's easy. Wait for your stuff to come in the mail! The terminal-in-a-box that you might have heard of is currently in active dev but come hang out and help along in #building-programming-languages in the meantime.