📖 Документация Qumir

← Вернуться в Playground

Интерпретатор qumiri

qumiri — интерпретатор и JIT-компилятор для языка Qumir. Позволяет быстро запускать программы без предварительной компиляции.

Использование

qumiri [опции]

Опции командной строки

Опция Описание
-i FILE, --input-file FILE Читать программу из файла (по умолчанию: stdin)
--jit Использовать LLVM JIT вместо IR-интерпретатора
-O[0|1|2|3] Уровень оптимизации (только для JIT)
--time-us Показать время выполнения в микросекундах
--print-ast Вывести AST после парсинга
--print-ir Вывести IR после преобразования
--print-llvm Вывести LLVM IR (только для JIT)
-h, --help Показать справку

Режимы работы

IR-интерпретатор (по умолчанию)

Программа преобразуется во внутреннее представление (IR) и выполняется интерпретатором. Это быстрый режим запуска, подходящий для отладки.

qumiri -i программа.kum

LLVM JIT

Программа компилируется в машинный код «на лету» и выполняется. Обеспечивает максимальную скорость выполнения.

qumiri --jit -i программа.kum

С оптимизацией:

qumiri --jit -O3 -i программа.kum

Примеры

Запуск программы из файла

qumiri -i hello.kum

Запуск с замером времени

qumiri --jit --time-us -i benchmark.kum

Вывод:

результат => 3628800
time: 1234 µs

Отладка: просмотр AST

qumiri --print-ast -i программа.kum

Отладка: просмотр IR

qumiri --print-ir -i программа.kum

Чтение из stdin

echo 'алг нач вывод "Привет", нс; кон' | qumiri

Или интерактивно:

qumiri
алг
нач
    вывод "Привет!", нс
кон
^D

(Нажмите Ctrl+D для завершения ввода)

Сравнение режимов

Характеристика IR-интерпретатор LLVM JIT
Время запуска Быстрое Медленнее (компиляция)
Скорость выполнения Средняя Высокая
Оптимизации Нет -O0 до -O3
Отладка Удобная Менее удобная

Рекомендации:

Коды возврата

Код Описание
0 Успешное выполнение
1 Ошибка парсинга или выполнения

См. также