A modern systems programming language focused on explicit allocations,
effortless concurrency, and memory safety
Every allocation, mutation, and side effect is visible in code. No hidden costs. Write code that does exactly what it says.
Parallel constructs are first-class citizens. Write concurrent code that's both safe and performant with intuitive parallel for loops and clear semantics.
Strong type system and compile-time checks help prevent common memory errors. Get the performance of systems programming without the crashes.
Write platform-specific code elegantly with built-in platform blocks.
High-level features compile down to efficient machine code. No runtime overhead or garbage collection pauses.
Write tests directly alongside code with integrated test blocks. Keeps code reliable from day one.
Axe's syntax is designed to be clear and expressive. Explicit mutability markers, straightforward control flow, and powerful platform-specific code blocks make intentions completely clear.
use std.arena;
use std.io;
model Node {
value: i32;
next: ref Node;
}
/// Allocate a new Node from the arena
def new_node(arena: ref Arena, value: i32): ref Node {
mut n: ref Node = Arena.alloc(arena, sizeof(Node));
n.value = value;
n.next = nil;
return n;
}
/// Push a new value to the front of the list
def list_push_front(head: ref Node, arena: ref Arena, value: i32): ref Node {
mut new_head = new_node(arena, value);
new_head.next = head;
return new_head;
}
Write once, deploy anywhere. Axe's platform blocks allow for targeting multiple operating systems while maintaining clean, readable code.