Skip to main content

A small programming language written for learning purposes.

Project description

GPLv3 license zai PyPI version fury.io PyPI status

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
  • for loops
  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zai-pl-0.8.2.tar.gz (25.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zai_pl-0.8.2-py3-none-any.whl (45.0 kB view details)

Uploaded Python 3

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

Hashes for zai-pl-0.8.2.tar.gz
Algorithm Hash digest
SHA256 eb3047a11045da3a389cb846f52f2de37a84a7492e570f795af56d833735a3a7
MD5 d92f935abfcc9c9dcef9d05a8fb570a1
BLAKE2b-256 84d4bcbc898306f1bf6ffc0f3d23c41620de5189bac7271ef3486afe0ad906f9

See more details on using hashes here.

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

Hashes for zai_pl-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 81a47eb48253ea3cb5c13abb75dc6dd9fa0bfb96c127eddd90823233783769ea
MD5 f5ab8807c46a55306d718d53ff0fc1e6
BLAKE2b-256 0e3bb7933731e86c12390e7d13092b5006305f3c710328ce3efe9754e0488201

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page