Skip to main content

The Sheng Programming Language

sheng build python pypi license

结绳:在文字产生之前,古人们靠结绳记事、认事,此举起到了帮助人们记忆的作用。

Sheng is a Chinese programming language named after 结绳 (Jie Sheng), which means tying knots in ropes. In ancient China, before the creation of characters and words, the people remembered and recognized things by tying knots in ropes, which helped them memorize.

The philosophies of the Sheng grammar are interpretable, colloquial, and less punctuation marks. The compiler is implemented in Python with the PLY (Python Lex-Yacc) package which processes lexing and parsing in the phases of the compilation.


Usage

sheng [option] [file]

Installing and Running

Note: Sheng requires Python 3.9 or later

PyPI [Recommended]

Install the Sheng compiler from The Python Package Index (PyPI):

Note: This method requires Internet access.

pip install sheng

Then, execute command sheng [option] [file] to run.

Other install methods

Build and install

Build the code and install the Sheng compiler from the local builds:

Note: This method does not require Internet access.

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade build
python3 -m build
pip install ./dist/<.whl file> --force-reinstall

Then, execute command sheng [option] [file] to run.

Run the compiler module via Python

Run the compiler directly without building and installing in advance:

Note: This method requires Python 3.9 or later in your environment.

python3 -m src [option] [file]

Getting Started

This is the Sheng code in example/helloworld.zh:

甲 赋值 "你好,世界!"
打印(甲)

The first line is an assignment statement where is a variable name which is 赋值 (assign)ed a string value 你好,世界! (Hello, World!) surrounded by " (double quotes). The second line is a function call statement which calls the built-in function 打印 (print) to output the value of the variable .

This is the Python equivalent of the above Sheng code:

x = "你好,世界!"
print(x)

Compile the .zh file via sheng executable:

sheng example/helloworld.zh

You should see the following output in stdout:

你好,世界!

Contributing

I am excited to work alongside you to build and enhance the Sheng Programming Language!

BEFORE you start work on a feature/fix, please read and follow the Contributor's Guide to help avoid any wasted or duplicate effort.


Code of Conduct

This project has adopted the Contributor Covenant Code of Conduct. For more information contact luo@jiahai.co with any additional questions or comments.

Release files for sheng 0.1.22

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sheng 0.1.22
File Size Uploaded
sheng-0.1.22.tar.gz 49.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sheng 0.1.22
File Interpreter ABI Platform
sheng-0.1.22-py3-none-any.whl Python 3 none any Details

Total release size: 105.3 kB

Release files / sheng-0.1.22.tar.gz

Download URL sheng-0.1.22.tar.gz
Size 49.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c539ffb992492fbd6ecb501d4cc66605696bdbace40a279bc73a5e43dd17702d
BLAKE2b-256 checksum
How to use checksums
22dbcdd808ba75467e4a6844d0f97e51ec69856b0388ec2610c4328a645aa906
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release files / sheng-0.1.22-py3-none-any.whl

Download URL sheng-0.1.22-py3-none-any.whl
Size 56.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
757ab0e04e0d464265ab5f36ad7692a5fa8c3cbabe39d9893827a38ce555689e
BLAKE2b-256 checksum
How to use checksums
100c80dc7a926e3422a89c64d89edbaf00809e56934a91d1df06ff23f616069c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release history Release notifications | RSS feed

This release

0.1.22 This release

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page