Official repository of the JAPL language
Go to file
nocturn9x 71a73d010b Significant code refactoring, improved readability and standard compliance by adding more (and more specific) type hints. Revised visitor pattern 2020-07-30 15:38:33 +02:00
JAPL Significant code refactoring, improved readability and standard compliance by adding more (and more specific) type hints. Revised visitor pattern 2020-07-30 15:38:33 +02:00
examples Added improved name resolution and fixed closures, for loop needs fix 2020-07-30 14:47:59 +02:00
.gitignore Significant code refactoring, improved readability and standard compliance by adding more (and more specific) type hints. Revised visitor pattern 2020-07-30 15:38:33 +02:00
LICENSE Initial commit 2020-07-29 16:09:40 +02:00
README.md Typo (again lol) 2020-07-29 16:41:17 +02:00
japl.py Added JAPL 0.1.1 2020-07-29 16:14:17 +02:00
requirements.txt Significant code refactoring, improved readability and standard compliance by adding more (and more specific) type hints. Revised visitor pattern 2020-07-30 15:38:33 +02:00
setup.py Added JAPL 0.1.1 2020-07-29 16:14:17 +02:00

README.md

japl

JAPL is an interpreted, dynamically-typed and minimalistic programming language

J.. what?

You may wonder what's the meaning of JAPL: well, it turns out to be an acronym for Just Another Programming Language, but beware! Despite the name, the name is actually read like "JPL".

Some backstory

JAPL is born thanks to the amazing work of Bob (whose surname is obscure) that wrote a book available completely for free at this link.

Even though that books treats the implementation of a basic language named Lox, JAPL is (will, actually) much more feature-rich:

  • Possibility to delete variables with the del statement
  • break statement
  • Nested comments (Coming Soon)
  • Generators (Coming soon)
  • A decent standard library (Work in progress)

Other than that, JAPL features closures, function definitions, classes and static scoping. You can check the provided example .jpl files in this repo to find out more about JAPL.

Disclaimer

This project is currently a WIP (Work in Progress) and is not optimized nor complete. The first version of the interpreter is written in Python, but there are plans to create a bytecode VM using nim in the near future.

For other useful information, check the LICENSE file in this repo.

Contributing

If you want to contribute, feel free to send a PR!