Compile ordinary code
The # prefix evaluates an expression during compilation. It uses the same types, functions, and checked IR as runtime code.
01 THE LANGUAGE
Abla is a self-hosted, native programming language where ordinary checked code can run while your program is being built.
Experimental and changing quickly. Built for people who want to explore the model with us.
compile fun twice(value: int): int = value * 2
fun main: int {
val answer = #twice(21)
print("The answer is $answer")
}
02 WHY ABLA
The # prefix evaluates an expression during compilation. It uses the same types, functions, and checked IR as runtime code.
Packages can provide compile-time subparsers such as $json, $mvcview, and $mobile without bypassing the compiler.
The compiler, runtime, and standard library are written in Abla. A raw Linux target runs without a C runtime or libc.
03 THE ECOSYSTEM
Abla's packages are not placeholders. They exercise native services, databases, messaging, HTML, WebAssembly, and Android.
04 DOCUMENTATION
Learn the syntax in a few minutes, then go deeper into compile-time execution, ownership, packages, programmable builds, and the self-hosted compiler.
Open the programming guide05 COMMUNITY
Ask questions, share experiments, and discuss the language, compiler, and growing ecosystem with the Abla community.
Join Discord