Skip to content

A dynamic programming language designed to feel familiar and be fun to use, written in Rust

License

Notifications You must be signed in to change notification settings

nakala-lang/nakala

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI PRs Welcome GitHub license

Why make nakala?

Note: see History

After learning about progrmaming languages for over a year (including books, college level courses, multiple side projects, etc.), I've decided I want to make my own, general purpose programming language.

Philosophy

Nakala only has two core values:

  1. The syntax should feel familiar, while remaining unique
  2. Nakala doesn't try to do anything really hard, as I want to make working on this project fun and not another job that ends up burning me out.

Roadmap

  • Lexer
  • Parser / AST
  • Type Checking
    • Basic types
    • Advanced types (functions, classes, enums)
  • Interpreter
  • Standard library
  • Playground website
  • Editor tooling
  • Compiler (maybe C++?)
  • Self hosted

Contributing

I am always welcoming PRs and would love to work on the project with other people if they are interested. There are no rules, and I will accept any PR as long as it aligns with the projects core values as described above.


History

Nakala started as a programming language that I built based on arzg's Eldiro blog posts. The core architecture (especially the Parser) was practically identical to Eldiro, hence the name of the project: nakala (Punjabi for mimic). If you haven't read through his blog posts, I highly recommend you do because it is an unmatched learning resource.

I ended up scrapping the entire language and implementation for something I built from the ground up after studying more. However, I decided to keep the name as a nod to arzg for lighting a spark in me that put me on a journey of learning constantly.

License

nakala uses the MIT License

About

A dynamic programming language designed to feel familiar and be fun to use, written in Rust

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages