flang
flang — язык функционального программирования, написанный словами. Функция несет примеры и утверждения о результате; компилятор проверяет завершаемость до запуска. Генерирует проверенный код в C, C++, Go, Rust, Java, JavaScript, Elixir, Python или C#.
Ficha actualizada 22 sept 2026, 18:28 · upstream 22 sept 2026, 18:22 · release v0.7.21
Qué es flang
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
flang — это язык функционального программирования с строгим статическим типингом, написанный на словах вместо символов. В функции хранятся примеры и утверждения о результате; компилятор проверяет завершаемость файла до запуска. flang emit генерирует проверенный код в C99, C++, Go, Rust, Java, JavaScript, TypeScript, Elixir или Python. Компилер написан на самом языке, поэтому сборка требует только компилятора C и make.
Два слова несут обещания: «тотальная» перед функцией гарантирует завершение на любом входе; компилятор доказывает это с помощью структурного десанта или объявленной меры. Слово «обеспечивает» описывает постусловие — компилятор закрывает его над всеми входами, где он применим, и говорит, что не применился.
Синтаксис написан на русском языке (модуль, функция, принимает, обеспечивает, пример), но есть английская поверхность для lexing. Идентификаторы в кавычках — «Место вставки» — принадлежат их владельцу и не переводятся.
Сборка требует только C99 компилятор и make. Все три способа (brew, asdf, git clone) дают один и тот же бинарник с рунтаймами под каждым целевым языком.
- Проверка корректности программ на этапе компиляции без выполнения
- Генерация проверенного кода в C/C++/Go/Rust для интеграции с существующими системами
- Обучение и демонстрация функционального программирования через примеры
- Создание тестовых программ, где компилятор проверяет завершаемость перед выполнением
- Разработка системных инструментов (компиляторы, фреймворки) с гарантией корректности
- Обучение и демонстрация языка программирования в образовательных целях
- Компилятор проверяет завершаемость до запуска — это единственная гарантия безопасности
- Два слова несут обещания: «тотальная» гарантирует завершение, «обеспечивает» описывает постусловие
- Проверка завершаемости независима от компилятора и выполняется на уровне языка
- Компилятор генерирует код в 10 целевых языках (C, C++, Go, Rust, Java, JS, TS, Elixir, Python, C#)
- Синтаксис написан на русском языке с поддержкой английского lexing для совместимости
- Проверка завершаемости независима от компилятора и выполняется на уровне языка
- Не поддерживает состояние во времени, побочные эффекты и параллелизм — язык не имеет места для таких утверждений
- База знаний компилятора растет: 5068 строк в августе 2026 года, цель — под 4000 строк
- Не подходит для медицины, авиации или космоса из-за отсутствия сертификации на аппаратное обеспечение и доказанного поведения при отказе
- Проверка завершаемости не гарантирует безопасность от ошибок ввода (например, NaN) без дополнительных ограничений типа BoundOnNaN
- Отсутствие формальной гарантии безопасности: компилятор проверяет только завершаемость, а не корректность по отношению к данным
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Сборка flang требует C99 компилятора и make. Для macOS используйте Homebrew: brew install digitable-lol/tap/flang. Для Linux установите через apt или pip. Используйте asdf для управления версиями: asdf plugin add flang https://github.com/digitable-lol/asdf-flang.git, затем asdf install flang latest. После сборки выполните make -C bootstrap install (или PREFIX=$HOME/.local без sudo). Для разработки используйте flang repl или flang lsp --stdio для интерактивного взаимодействия с компилятором.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.