Skip to main content

Deterministic business application platform optimized for AI-assisted development

Project description

AILang

AI-first programming language — deterministic, specification-driven, and compiler-friendly.

Tests Python Version License

AILang is an AI-first programming language designed to be deterministic, specification-first, and easy for both humans and AI systems to reason about. It features a complete compiler pipeline, a 16-module standard library, and has been validated through 772 tests, stress testing up to 10,000 LOC, and AI-generated program verification with 100% first-pass success.

Quick Start

# Install
git clone https://github.com/anomalyco/ailang.git
cd ailang
python -m venv .venv
source .venv/bin/activate      # Linux/macOS
# .venv\Scripts\activate       # Windows
pip install -e .

# Run your first program
echo 'fn main() { print("Hello, AILang!"); return 0 }' > hello.ail
ail hello.ail

Documentation

Guide Description
Getting Started Step-by-step introduction
Language Tour Complete language feature tour
Standard Library Reference All 16 modules documented
Compiler Architecture Pipeline and design
Contributor Guide How to contribute
Testing Guide Test patterns and practices
Quick Start 5-minute setup guide
VS Code Extension AILang VS Code extension

VS Code Extension

Install the AILang extension for syntax highlighting, snippets, bracket matching, and more:

code --install-extension extensions/vscode-ailang

Or package and install from the VS Code Marketplace: extensions/vscode-ailang/.

Features

  • Simple, explicit syntax — functions, variables, conditionals, recursion
  • Deterministic compilation — same source always produces same output
  • 16-module Standard Library — string, math, collections, file I/O, JSON, CSV, time, random, environment, conversion
  • AI-friendly — validated with 23 AI-generated programs at 100% first-pass success
  • Fast compile times — 5000 LOC compiles in <2 seconds
  • Low memory usage — 5000 LOC uses <11 MB peak memory
  • Complete test coverage — 772 tests across all compiler stages

Example

import string;
import math;
import list;

fn process(items) {
    let first = list.get(items, 0);
    return string.uppercase(first)
}

fn main() {
    let items = list.new();
    list.append(items, "hello");
    list.append(items, "world");
    let r = process(items);
    let s = math.add(1, 2);
    print(r, s);
    return 0
}

Standard Library

Module Operations
string concat, equals, uppercase, lowercase, length, contains, starts_with, ends_with, trim, substring, find, find_from, split, join, from_int, from_bool
math add, sub, mul, div, abs, min, max
list new, append, len, get, contains, remove, clear, sum, find_by_key, filter_by_key, filter_by_contains, collect_key, group_by_key, sum_by_key, take, skip, search_by_name, exists_by_key, sort, sort_by_key, copy
array new, push, len, get, contains, remove, clear
map new, set, get, has, delete, keys, clear, values, get_or_default, safe_get
set new, add, contains, len, remove, clear
file exists, read, write, append, remove, listdir
path join, basename, dirname, extension, normalize
json parse, stringify
csv parse, parse_header, stringify
time now, timestamp, sleep, format
random int, float, choice
environment get, cwd, args
convert to_string, to_int, to_bool, to_number
io write, writeln, println
system exit

Project Status

Metric Value
Python version 3.11+
Compiler LOC ~3,950 (39 Python files)
Stdlib modules 16
Tests 772 passing
Example programs 55+
Application programs 43+
DX Tools ail context, ail doctor, ail static_analyzer, ail benchmark, ail testgen
Quality gates black, ruff, mypy all clean
Validation Deterministic, AI-verified, stress-tested

Formatter

AILang includes a deterministic source code formatter. One style only — no configuration.

# Format a file in-place
ail fmt hello.ail

# Check if a file is formatted (exit 0 = yes, 1 = no)
ail fmt --check hello.ail

# Read from stdin, write formatted to stdout
cat hello.ail | ail fmt --stdin

Formatting rules:

  • 4-space indentation
  • Opening brace on same line (fn foo() {, if (cond) {)
  • } else { on one line
  • Spaces around all binary operators (a + b, x == y, a && b)
  • Space after , in parameter/argument lists
  • Single blank line between function declarations
  • Trailing whitespace removed
  • Newline at EOF
  • Comments preserved — inline and standalone comments are retained

Formatting is idempotent: formatting an already-formatted file produces no changes.

Development

# Install development tools
pip install pytest black ruff mypy

# Run all quality gates
python -m pytest
black --check .
ruff check .
mypy

License

This project is licensed under the MIT License.

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

ailang_lang-1.0.1.tar.gz (253.0 kB view details)

Uploaded Source

Built Distribution

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

ailang_lang-1.0.1-py3-none-any.whl (196.0 kB view details)

Uploaded Python 3

File details

Details for the file ailang_lang-1.0.1.tar.gz.

File metadata

  • Download URL: ailang_lang-1.0.1.tar.gz
  • Upload date:
  • Size: 253.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for ailang_lang-1.0.1.tar.gz
Algorithm Hash digest
SHA256 10c43a3e9b20f4ebe674953f1bcd7ef3bd017360bc0b9753e7bc635689b64baf
MD5 638ca7978ed0a6862c4bd746c7d6f5c2
BLAKE2b-256 3c588df181acbe93b11b37603792b8d3184f6049eda4b0bdbd84e5a6538abac7

See more details on using hashes here.

File details

Details for the file ailang_lang-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: ailang_lang-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 196.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for ailang_lang-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 65834cc269bec9b1a342e4ef8d35c16102ea716fe55dc7d421e147765ef06e39
MD5 35d234392967d8b62d0de680b0c107ed
BLAKE2b-256 c89cd1a360dee36da57e4ffe96ec156000b5bb444a13a701402c6fb8842e68a7

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