🌐 English · Japanese
Align is an AOT-compiled, data-oriented programming language. It aligns four readers at once — the human who writes the code, the AI that generates it, the compiler that optimizes it, and the hardware that runs it. By combining a strict "nothing hidden" policy, a single unified model for errors and ownership, and a core built around data-oriented arrays and slices, Align guarantees predictable performance and cache-friendly, fused loops out of ordinary code.
Currently supported platforms:
- Linux x86-64
- macOS Apple Silicon (aarch64)
- Windows is not supported.
brew tap sanohiro/align
brew install aligncurl -fsSL https://sanohiro.github.io/align/install.sh | sudo sh
sudo apt install aligncThe install script configures the LLVM 22 and Align apt repositories, then apt install alignc pulls the compiler and its runtime.
Building the compiler needs Rust 1.96+ and LLVM 22 (with a matching clang as the C compiler/linker).
Install the LLVM toolchain from the official apt.llvm.org repository; llvm-config-22 must be on your PATH:
sudo apt install llvm-22 llvm-22-dev clang-22Install the dependencies with Homebrew:
brew install llvm openssl@3 zstdThe llvm formula currently provides LLVM 22; if Homebrew has since moved it past 22, install the versioned llvm@22 formula instead. Homebrew's LLVM is keg-only (its llvm-config is not on your PATH), so point the build at it and add the linker search paths for the runtime's native libraries (zstd, openssl@3). Add these to your shell profile, or prefix each cargo / alignc command with them (the same LIBRARY_PATH is needed when running an alignc-built program that links those libraries):
export LLVM_SYS_221_PREFIX="$(brew --prefix llvm)"
export LIBRARY_PATH="$(brew --prefix)/lib:$(brew --prefix openssl@3)/lib"cargo build --release
# The compiler binary will be at target/release/aligncCreate a file named hello.align:
fn main() -> i32 {
print("hello, align")
return 0
}
Run it with:
./target/release/alignc run hello.alignStart with the guide — a hands-on introduction to thinking and writing in Align:
Tutorial (English) · Tutorial (Japanese)
Prefer drills? The Little Aligner (Japanese) teaches the same idioms as a Q&A workbook, in the style of The Little Schemer.
draft.md— authoritative language specificationdocs/guide/— hands-on tutorial, 23 chapters (00–22, English + Japanese)docs/little-aligner/— Q&A drill workbook in the style of The Little Schemer (English + Japanese)docs/— design rationale, history, non-goals, open questionsdocs/impl/— compiler implementation plan + std module design specseditors/— Vim / Emacs / VS Code support (syntax, snippets)crates/— thealignccompiler workspace
Dual-licensed under either of:
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)