You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Alexey Yerin 0f27abfa90 qbe: move tests to generator::tests 3 months ago
.builds Backend command line option (#23) 7 months ago
.github fix(ci): action version 4 months ago
builtin feat: struct definitions (#12) 7 months ago
contrib contrib: fix install path in PKGBUILD 7 months ago
docs QBE generator (#42) 3 months ago
examples feat: assignment operators (#10) 7 months ago
lib chore: remove unnecessary file 7 months ago
src qbe: move tests to generator::tests 3 months ago
tests UTF-8 (#47) 3 months ago
.Dockerignore feat: add docker image 7 months ago
.gitignore chore: ignore playground 8 months ago
CHANGELOG.md QBE generator (#42) 3 months ago
CODEOWNERS codeowners: init 3 months ago
CONTRIBUTING.md chore: change repository link 7 months ago
Cargo.lock UTF-8 (#47) 3 months ago
Cargo.toml UTF-8 (#47) 3 months ago
Dockerfile chore: rename sabre to antimony 7 months ago
LICENSE Add license 10 months ago
README.md Update README.md 3 months ago
book.toml chore: rename sabre to antimony 7 months ago
build_docs.py docs: fix build script 8 months ago

README.md

The Antimony Programming Language

Continuous integration docs Chat on Matrix

Antimony is a bullshit-free (©) programming language that gets out of your way. It is meant to "just work", without adding unnecessary and bloated language features.

Why yet another language?

The goal of Antimony is to be a simple language that anyone - beginner and expert - can pick up and use. A "bullshit-free programming language" is of course a highly subjective opinion, and this project is my very own attempt at this. There are plenty of great programming languages out there, and Antimony is not meant to replace any of them. Currently, Antimony is just a general-purpose toy language. Its primary goal is to be simple and easy to understand, not to be efficient.

Example

// examples/fib.sb

fn main() {
    let num = 10
    println(fib(num))
}

fn fib(n: int): int {
    if n <= 1 {
        return n
    }

    return fib(n-1) + fib(n-2)
}

// -> 55

State of this project

Most algorithms should run fine, but some features may be unstable. Standard library and documentation are still incomplete. See the open issues for upcoming todos.

The Antimony compiler emits JavaScript for the Node.js runtime, and a C backend is currently under development. Backends for WASM and LLVM are planned.

Documentation

Documentation is hosted here.

Getting started

See the installation instructions to get started.

Getting in touch

Join our Matrix room!

License

This software is licensed under the Apache-2.0 license.