A programming language optimized for LLM code generation
Project description
Sui (粋) - A Programming Language for LLMs
A line-based programming language optimized for accurate LLM code generation
Overview
Sui (粋) is a programming language named after the Japanese aesthetic concept meaning "refined" and "elimination of excess." It is designed with LLM (Large Language Model) code generation accuracy as the top priority.
Design Principles
- Line Independence - Each line is completely self-contained
- Minimal Bracket Matching - Nesting only for function blocks
{} - Single-Character Instructions - Maximum token efficiency
- Sequential Variables - No meaningful names needed (v0, v1, g0, a0)
- Explicit Control Flow - Labels and jumps
Installation
# PyPI
pip install sui-lang
# Homebrew (macOS/Linux)
brew tap TakatoHonda/sui
brew install sui-lang
# From source
git clone https://github.com/TakatoHonda/sui-lang.git
cd sui-lang
Quick Start
Interactive Mode (REPL)
# Start REPL
sui
# Example session
>>> = v0 10
>>> + v1 v0 5
>>> . v1
>>>
15
>>> .exit
Commands: .exit / .quit (exit), .reset (reset state)
Interpreter
# Run file
sui examples/fibonacci.sui
# Run with arguments
sui examples/fib_args.sui 15
# Validate
sui --validate examples/fibonacci.sui
# Show help
sui --help
Transpiler (Sui → Python)
# Show converted code
sui2py examples/fibonacci.sui
# Output to file
sui2py examples/fibonacci.sui -o fib.py
# Convert and execute
sui2py examples/fib_args.sui --run 15
Transpiler (Python → Sui) for humans
# Show converted code
py2sui your_code.py
# Output to file
py2sui your_code.py -o output.sui
Running without Installation (from source)
# Using python directly
python sui.py examples/fibonacci.sui
python sui2py.py examples/fibonacci.sui
python py2sui.py your_code.py
Syntax
Instructions
| Instr | Format | Description |
|---|---|---|
= |
= var value |
Assignment |
+ |
+ result a b |
Addition |
- |
- result a b |
Subtraction |
* |
* result a b |
Multiplication |
/ |
/ result a b |
Division |
% |
% result a b |
Modulo |
< |
< result a b |
Less than (0/1) |
> |
> result a b |
Greater than (0/1) |
~ |
~ result a b |
Equality (0/1) |
! |
! result a |
NOT |
& |
& result a b |
AND |
| |
| result a b |
OR |
? |
? cond label |
Conditional jump |
@ |
@ label |
Unconditional jump |
: |
: label |
Label definition |
# |
# id argc { |
Function definition start |
} |
} |
Function definition end |
$ |
$ result func args... |
Function call |
^ |
^ value |
Return |
[ |
[ var size |
Array create |
] |
] result arr idx |
Array read |
{ |
{ arr idx value |
Array write |
. |
. value |
Output |
, |
, var |
Input |
P |
P result "func" args... |
Python FFI |
Variables
| Format | Meaning |
|---|---|
v0, v1, ... |
Local variables |
g0, g1, ... |
Global variables |
a0, a1, ... |
Function arguments |
g100 |
argc (command-line argument count) |
g101, g102, ... |
argv (command-line arguments) |
Examples
Fibonacci
# 0 1 {
< v0 a0 2
! v1 v0
? v1 1
^ a0
: 1
- v2 a0 1
$ v3 0 v2
- v4 a0 2
$ v5 0 v4
+ v6 v3 v5
^ v6
}
= g0 10
$ g1 0 g0
. g1
Output: 55
Python FFI
; Math functions
P g0 "math.sqrt" 16
. g0
; Random number
P g1 "random.randint" 1 100
. g1
; Type conversion
P g2 "int" "123"
+ g3 g2 1
. g3
Output: 4.0, random number, 124
FizzBuzz
= v0 1
: 0
> v1 v0 100
? v1 9
% v2 v0 15
~ v3 v2 0
? v3 1
% v4 v0 3
~ v5 v4 0
? v5 2
% v6 v0 5
~ v7 v6 0
? v7 3
. v0
@ 4
: 1
. "FizzBuzz"
@ 4
: 2
. "Fizz"
@ 4
: 3
. "Buzz"
@ 4
: 4
+ v0 v0 1
@ 0
: 9
File Structure
sui/
├── README.md # This file (English)
├── README_ja.md # Japanese README
├── LICENSE # MIT License
├── sui.py # Interpreter
├── sui2py.py # Sui → Python transpiler
├── py2sui.py # Python → Sui transpiler (for humans)
├── examples/
│ ├── fibonacci.sui
│ ├── fib_args.sui
│ ├── fizzbuzz.sui
│ ├── list_sum.sui
│ ├── args_demo.sui
│ └── ffi_demo.sui
└── prompts/
├── system_prompt.md # LLM system prompts
└── examples.md # Generation examples
LLM Integration
Sui is designed for LLM code generation. Use the prompts in prompts/ directory:
- Copy the system prompt from
prompts/system_prompt.md - Paste it into ChatGPT / Claude / Gemini / etc.
- Ask to generate Sui code for your task
- Run with
sui your_code.sui
See prompts/examples.md for prompt templates and expected outputs.
Why Sui?
Name Origin
Sui (粋) - A Japanese word meaning "refined," "sophisticated," or "the essence." It represents the aesthetic of eliminating excess and keeping only what is essential.
Avoiding LLM Weaknesses
| LLM Weakness | Sui's Solution |
|---|---|
| Bracket mismatch | Only {} for functions |
| Long-range dependencies | Each line is independent |
| Variable name typos | Only sequential numbers (v0, v1...) |
| Complex nesting | No nesting, decompose to temp variables |
vs Assembly
| Aspect | Assembly | Sui |
|---|---|---|
| Instruction count | Hundreds to thousands | ~20 |
| Registers | 8-32 | Unlimited |
| Function calls | Complex (ABI) | Simple |
vs Python
| Aspect | Python | Sui |
|---|---|---|
| Token count | High | Low |
| Syntax complexity | High | Low |
| Line-by-line errors | Hard | Easy |
Roadmap
- Transpiler (Python output)
- Transpiler (Python input, for humans)
- Interactive mode (REPL)
- Transpiler (JavaScript output)
- Type annotations (optional)
- LLVM IR output
- WebAssembly output
License
MIT License
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 sui_lang-0.2.2.tar.gz.
File metadata
- Download URL: sui_lang-0.2.2.tar.gz
- Upload date:
- Size: 21.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
566ce4102e544e484d3157c619c157ede6b9579ba3ebcd65ba4ff78684de7081
|
|
| MD5 |
7ca9bd4f2be0c15c2ffea2e6d2cbc235
|
|
| BLAKE2b-256 |
ae97024213816b81341a0cdd6aa6f9919e7ab2adc99fc862cc0560c26488019c
|
File details
Details for the file sui_lang-0.2.2-py3-none-any.whl.
File metadata
- Download URL: sui_lang-0.2.2-py3-none-any.whl
- Upload date:
- Size: 21.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93937fabcaaf28aadfcedc8d1f61f28b7887256eedd985eeacba33fdb52fddfd
|
|
| MD5 |
269c3d4ca4faab55a28495a31217de38
|
|
| BLAKE2b-256 |
59cbec1f257b501daa78a662a4e605bbd522fa9f5378a16cff8802e783035308
|