Алатырь

Системный язык программирования, потолок выразительности которого равен ассемблерному, — с абстракциями, остающимися прозрачными при генерации кода. Вы всегда знаете, что делает машина.

Предсказуемость до самого низа.

основной тезис

Один язык.
Все уровни.

без лестницы уровней
кодогенерация

Прозрачное
понижение.

Каждая конструкция порождает код по документированному правилу, поэтому ассемблер предсказуем из исходника — без запуска компилятора.

цена

Ничего
скрытого.

Нет скрытых выделений памяти, скрытого потока управления и таблиц виртуальных методов — поведение следует из исходника, его манифеста и соглашений языка.

проверки

Верно —
или ловушка.

Операции проверяются по умолчанию; внутри области 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