Qumir — Школьный Алгоритмический Язык
Qumir — это современная реализация учебного языка программирования, вдохновлённого Школьным Алгоритмическим Языком академика А.П. Ершова и системой КуМир.
Что такое Qumir?
Qumir — компилятор и интерпретатор языка программирования с русскоязычным синтаксисом. Проект создан для обучения программированию и алгоритмическому мышлению.
Онлайн-песочница: qumir.dev
Основные возможности
- Русскоязычный синтаксис, совместимый с КуМир
- Компиляция в машинный код через LLVM
- Компиляция в WebAssembly для запуска в браузере
- Интерпретатор для быстрого тестирования
- Графические исполнители: Черепаха и Робот
Историческая справка
Школьный Алгоритмический Язык
Школьный алгоритмический язык был разработан в 1980-х годах группой учёных под руководством академика Андрея Петровича Ершова (1931–1988).
А.П. Ершов — выдающийся советский учёный, один из пионеров теоретического и системного программирования. Он был убеждён, что программирование должно стать «второй грамотностью» и быть доступным каждому школьнику.
Алгоритмический язык создавался специально для обучения:
- Русскоязычные ключевые слова понятны без перевода
- Простой и строгий синтаксис не отвлекает от изучения алгоритмов
- Язык читается почти как естественный текст
КуМир
КуМир (Комплект Учебных МИРов) — система программирования, созданная на основе идей Ершова. КуМир включает:
- Текстовый редактор с подсветкой синтаксиса
- Интерпретатор алгоритмического языка
- Графических исполнителей: Робот, Чертёжник, Черепаха и другие
КуМир широко используется в российских школах для преподавания информатики и подготовки к ЕГЭ.
Qumir
Qumir — это новая реализация алгоритмического языка с современной архитектурой:
- Компилятор на C++ с использованием LLVM
- Поддержка WebAssembly для работы в браузере
- Открытый исходный код
Установка и запуск
Требования
- CMake >= 3.30
- Компилятор C++23 (GCC 13+ или Clang 17+)
- LLVM >= 20
- Ninja (рекомендуется)
- Для WebAssembly:
wasm-ld
Сборка из исходников
# Клонирование репозитория
git clone https://github.com/resetius/qumir.git
cd qumir
# Сборка
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
# Проверка
./build/bin/qumiri --help
./build/bin/qumirc --help
После сборки в папке build/bin/ появятся:
qumiri— интерпретатор / JITqumirc— компилятор
Запуск тестов
cd build
ctest --output-on-failure
Быстрый старт
Точка входа
Точка входа — это первый алгоритм (функция) в файле. Именно он будет выполнен при запуске программы.
Если точка входа принимает аргументы, их нужно указать:
- В онлайн-версии — в поле "Args" (через запятую)
- В офлайн-версии — ввод аргументов пока не поддерживается
Первая программа
Создайте файл hello.kum:
алг
нач
вывод "Привет, мир!", нс
кон
Запуск через интерпретатор
./build/bin/qumiri -i hello.kum
Компиляция в исполняемый файл
./build/bin/qumirc hello.kum -o hello
./hello
Компиляция в WebAssembly
./build/bin/qumirc --wasm hello.kum -o hello.wasm
Структура документации
- Синтаксис языка — типы данных, операторы, управляющие конструкции
- Интерпретатор qumiri — опции командной строки, режимы работы
- Компилятор qumirc — компиляция в машинный код и WebAssembly
- Исполнитель Черепаха — черепашья графика
- Исполнитель Робот — программирование робота на клетчатом поле
- Примеры программ — готовые примеры для изучения
Ссылки
- Онлайн-песочница: qumir.dev
- Исходный код: github.com/resetius/qumir
- Классический КуМир: kumir.info