A small programming language written for learning purposes.
Project description
Zai
Zai is a small programming language which I wrote for fun. The language:
- Is Dynamically typed
- Is Entirely written in Python
- Supports classes
- Supports first-class functions
- Supports writing and importing modules
NOTE: This is a project made for both learning and fun. It is not meant to be used in serious projects.
Installation
Git
git clone https://github.com/sehnsucht13/zai-pl.git
cd zai-pl
# Start a REPL
python3 -m zai
# Run a file called FILENAME.zai
python3 -m zai FILENAME.zai
Pip
# Install from pip
pip install --user zai-pl
# Start a REPL
zai-pl
# Run a file called FILENAME.zai
zai-pl FILENAME.zai
Language Tour
A small tour of the language showing some of the features available along with language syntax can be found within the docs/language-tour.md file.
Missing Features and Future Improvements
Here is a list of the features which are currently missing but will be implemented in the future
Language Features
- Basic class inheritance
-
forloops - Multiline comments
- Prefix/Postfix increment and decrement operators
- Printing more than one variable at a time.
- Floating Point Numbers
- Add support for source code comments
Dev Features
- Improve test coverage
- Automatic Deploy of new versions with CircleCI
Internals and Documentation
- The language grammar can be found within the docs/grammar file.
- Some more in-depth details about the implementation(how objects are represented internally, environment...) can be found within docs/architecture.md file.
Resources
Below are some of the resources which I found helpful while making this.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zai-pl-0.8.2.tar.gz.
File metadata
- Download URL: zai-pl-0.8.2.tar.gz
- Upload date:
- Size: 25.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb3047a11045da3a389cb846f52f2de37a84a7492e570f795af56d833735a3a7
|
|
| MD5 |
d92f935abfcc9c9dcef9d05a8fb570a1
|
|
| BLAKE2b-256 |
84d4bcbc898306f1bf6ffc0f3d23c41620de5189bac7271ef3486afe0ad906f9
|
File details
Details for the file zai_pl-0.8.2-py3-none-any.whl.
File metadata
- Download URL: zai_pl-0.8.2-py3-none-any.whl
- Upload date:
- Size: 45.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81a47eb48253ea3cb5c13abb75dc6dd9fa0bfb96c127eddd90823233783769ea
|
|
| MD5 |
f5ab8807c46a55306d718d53ff0fc1e6
|
|
| BLAKE2b-256 |
0e3bb7933731e86c12390e7d13092b5006305f3c710328ce3efe9754e0488201
|