Skip to content

Drizzle is a (currently interpreted) programming language designed as something I would like to use, and used as a way to learn lots of new things.

License

Notifications You must be signed in to change notification settings

drizzle-lang/drizzle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

drizzle banner

Drizzle release badge

Drizzle is my very own programming language, simultaneously developed as a language I would like to use and a never-ending source of things to learn.

Name

This project was originally called Sapphire. I decided to make an organisation for this project as it would surely consist of multiple projects and I really enjoy having projects grouped into Organisations.

However, when I tried to do so, I found that sapphire and sapphire-lang were both taken in terms of names, and there were a few programming language projects named Sapphire on GitHub. So I felt I needed to change the name.

Being a fan of Pokémon, my first thought was Kyogre, the legendary from Pokémon Sapphire. From there I thought of his ability Drizzle, which I thought was a nice name for my language considering I also love rain, so there you go!

(Also I already had made stickers of the logo so I had to stick with blue and stuff >.>)

Installation

Installation instructions have been moved here

Goals

The goals of the project are (in some particular order):

  • Create a language with a nice syntax that I would like to use.
  • Constantly learn ways to improve the language.
  • Learn about the kind of work that goes into developing production grade languages.
  • Eventually get Drizzle to the point where it can interpret / compile itself.

Notes

  • It would be nice if the project could maintain a side-by-side interpreter and compiler so that drizzle could have a fully functional REPL environment built into the language, or maybe provide drizzle-interpreter as a separate package or something idk
  • The more I go through the interpreter book, the more I realise that translating the ANTLR parser every time I add something new might not be worth the hassle.
    • However, if I can do it in a smart way, I should only have to translate the whole thing once, and figure out how to add stuff manually going forward in the same style to keep the benefits
  • Could generate the parser in a different language and commit that to source control
  • Then whenever I make updates, I do it in a separate branch and use the PR to update the Crystal version

Contributing

This project is open to anyone who wants to learn anything about creating programming languages!

A goal for early stages is to keep documentation at a high enough quality that it will hopefully be easy to follow what's going on, but if not then please open an issue!

Contributors

About

Drizzle is a (currently interpreted) programming language designed as something I would like to use, and used as a way to learn lots of new things.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published