Попытка создать современный язык с характеристиками эффективности (как C++), простоты (как Python), удобства использования (как Swift) и связующими свойствами.
Адекватно пожертвовать эффективностью во время выполнения, чтобы сделать код безопасным и простым в использовании.
Не поддерживать указатели, не использовать сборщик мусора, освобождать память с помощью ARC.
Пример Фланг «Hello, World!»:
// helloworld.f
domain hello
use sys.*
pub func main(){
println("hello, world!")
}
Исходный код обычно состоит из следующих четырёх частей:
flang compile hello.f
: или flang hello.f
компилирует один файл.
-i -b -s -c
означают вывод IR, битового IR, ассемблерного кода, двоичного файла. Поддерживается комбинированный режим, например: -ibc
.flang run hello.f
: компилирует один файл и запускает его.flang fmt
: или flang format
форматирует код.flang check
: проверяет синтаксис.flang doc
: генерирует документацию.flang init
: создаёт proj, который содержит один mod, содержащий один исходный файл helloworld.flang new modname
: добавляет один mod в текущий proj.
flang new --bin modname
: указывает, что цель является двоичным исполняемым файлом.flang new --lib modname
: означает, что это библиотека.flang dep
: управление зависимостями.
falng dep where
: показывает расположение зависимых файлов.flang dep cache
: или flang dep get
или flang dep download
загружает зависимости на локальный компьютер.flang dep config
: устанавливает местоположение кэша зависимостей.flang dep update
: обновляет зависимости (если в конфигурации проекта указана максимальная версия, то максимум до этой версии).flang dep build
: компилирует зависимости.flang dep clean
: очищает скомпилированные файлы зависимостей.flang dep list
: отображает список зависимостей.flang dep graph
: отображает дерево зависимостей.flang dep verify
: проверяет, были ли изменены зависимости после загрузки.flang dep help
: отображает справку.flang build
: компилирует текущий модуль mod или проект proj.
flang build --release
: или -r
компилирует версию для выпуска. По умолчанию используется --debug.flang build --release --arch:i386 --os:win
кросс-компиляция.flang run
: компилирует и запускает текущий модуль или проект.flang clean
: удаляет сгенерированные целевые файлы.flang test
: компилирует и запускает тестовый код текущего модуля или проекта.flang bench
: запускает тесты производительности.flang play
: запускает playground.flang shell
: или flang repl
запускает интерактивную среду интерпретатора.flang llvm --ast hello.f
: выводит абстрактное синтаксическое дерево. flang llvm — ir hello.f: или -i выводит IR-код.flang llvm —ir -O3 hello.f -o hello.ll: выводит IR-код, с оптимизацией третьего уровня.
flang llvm — bc hello.f: или -b выводит bitcode (двоичный IR-код).
flang llvm — asm hello.f: или -s выводит ассемблерный код.
Команды для работы с пакетами:
flang pkg dirname -o instpkg: создаёт установочный пакет instpkg на основе содержимого папки dirname.
Вспомогательные команды:
flang version: или flang ver показывает информацию о версии.
flang update: обновляет компилятор flang.
flang help: показывает справку.
flang -###: показывает детали выполнения последующих команд без их фактического выполнения; -### можно использовать в любом месте команды. Например: flang llvm — ast hello.f -###.
C, C++, C#, Go, Swift, Rust, Scala, Python, Julia, Lua.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )