Alatyr

一门系统编程语言,其表达能力的上限等同于汇编器 —— 同时提供在代码生成中保持透明的抽象。你始终知道机器在做什么。

可预测,直至底层。

核心前提

一门语言。
每一层。

没有层级阶梯
代码生成

透明的
降级。

每个结构都按文档化的规则生成代码,因此无需运行编译器即可从源码预测汇编。

代价

没有
隐藏。

没有隐藏的内存分配,没有隐藏的控制流,没有虚表 —— 行为完全来自源码、它的清单和语言约定。

验证

正确,
或者陷阱。

运算默认经过检查;在 unchecked 作用域内,其行为由硬件定义,而绝非编译器认为方便的方式。

一种形式,
贯穿始终。

声明形式只有一种 —— name : type = value。类型、函数和泛型都是以同样方式书写的值,因此每一层都无需学习新的语法。

name := value声明并从值推断类型
fn(…) -> T一个值表达式,正如 struct {…} 一样
pub · mut · comptime三个修饰符,作用于三条正交的轴
declarations.al摘自规范
## 声明把名字绑定到
## 其右侧表达式求值的结果

Point   := struct { x : u64, y : u64 }
Meters  := brand(u64)
add     := fn(a : u64, b : u64) -> u64 { a + b }
Vec     := fn(T : type) -> type { struct { ptr : ptr(T), len : usize } }
comptime PI : f64 = 3.14159
mut count : u64 = 0