Liza
Экспериментальный системный язык: программа описывает значения, зависимости вычислений, права на изменение состояния и эффекты. Физическое размещение данных и машинные инструкции выбирает реализация в пределах этих контрактов.
Цель — лаконичный язык для сложных систем, включая HA-мессенджеры и ВКС, с нативной компиляцией, без универсальных указателей и обязательного GC. Это цель проекта, а не описание уже готовых возможностей.
Что работает сейчас
Первый вертикальный срез: исходник → AST → типизированный Liza IR → LLVM IR → нативный исполняемый файл через Clang. Компилятор-прототип написан на Python без сторонних зависимостей. Скомпилированной программе Python не нужен.
Поддерживаются u32 и bool, неизменяемые привязки, функции, вызовы, return,
сравнения, отрицание !, ветвления if/else,
арифметика с проверкой переполнения и явным циклическим переполнением.
fn twice(value: u32) -> u32 : pure {
return value * 2
}
fn main() -> u32 {
answer = twice(20) + 2
return answer
}
Собрать первую программу · Изучить модель языка · Посмотреть этапы разработки
Границы прототипа
Пока нет состояний, views, handles, проверки владения, задач, ввода-вывода, структур, массивов, циклов, модулей и стандартной библиотеки. Нет обещания оптимального исполнения на любой архитектуре. Есть только сборка для хоста; кросс-компиляция и другие виды артефактов — следующие этапы.
Сейчас Clang связывает обычную host-программу с системным startup-кодом; freestanding-сборка ещё не реализована.