Skip to content

hackclub/easel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

From now until the end of the school year (June 29), we're running a programming language jam, where you'll have the chance to win a signed copy of Crafting Interpreters.

The gist: write a programming language → record a demo video 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. Submission forms for the jam will open separately on June 29.

Check out #building-programming-languages on the Slack to hang out with fellow teenagers hacking on programming languages.

Step zero: learn how to write a programming language!

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.

Step one: write your programming language!

Here's the biggest part of 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, including:

  • Creativity and silliness!
  • Bonus points if you explain your implementation.

And the top three will get a hard copy of Crafting Interpreters while we're running our programming jam!

Read more about the criteria on langjam.hackclub.com.

Step two: record a demo!

Record a demo of your programming language in action, for example 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.

If you don't want to use Asciinema, that's perfectly fine! Check out @Amin's programming lang in Minecraft:

demo.mp4

Hopefully that gives you some crazy ideas.

Step three: open a PR!

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.

Step four: get your stuff in the mail!

This one's easy. Wait for your stuff to come in the mail!