Skip to content

Latest commit

 

History

History
92 lines (60 loc) · 2.32 KB

File metadata and controls

92 lines (60 loc) · 2.32 KB

AzLang

A minimal, powerful and readable programming language that blends Python's simplicity, Rust's performance, and TypeScript's type-safety.

build license language


Our Mission

AzLang provides an approachable, understandable and performant coding experience for everyone — from beginners to professional developers.

AzLang is a compiled language. The source is parsed into an AST, semantically validated, and then lowered through a dedicated backend. There is no runtime interpreter for .az scripts.


Features

  • Natural syntax — Code reads as clearly as a human language
  • Type-Safety — Type checking is performed automatically, and optional explicit annotations are supported where needed
  • Static analysis — A built-in type analysis pipeline validates programs before code generation
  • Compiler-based — Source is compiled to a native executable; no runtime interpreter

Type System

AzLang's type system relies on automatic type inference. Annotations are optional, though they are required for certain cases such as enums and objects.

enum, object and a few specific constructs require an explicit type.

Community and Contributions

This project is open source. Any help or idea is valuable:

  • New syntax proposals
  • Bug reports
  • Documentation support
  • Code contributions (pull requests are welcome!)

See CONTRIBUTING.md for architecture and contribution guidelines.


Roadmap

  • Syntax design
  • AST and parser
  • Type analysis
  • Backend / code generation
  • Optimization
  • Standard library
  • Web IDE and playground
  • Official documentation and tutorials

Syntax Overview

const int a = 5
a = 2

const str b = "Hi"

func add(a: int, b: int): int
    return a + b

print(add(1, 2))

Building

cargo build --release

Dependencies

  • QBE — afterburner backend / intermediate representation compiler
  • Linuxbinutils (assembler) and ld.lld (linker)
  • Windows — an assembler (e.g. MASM or NASM) and lld.link (linker)