Быстрый старт
За десять минут вы установите «Сферу», напишете первую программу и запустите её. Весь язык — на русском: ключевые слова, типы, стандартная библиотека. Набирать код можно, не переключая раскладку.
Что понадобится
- Windows 10/11, Linux или macOS.
- Любой текстовый редактор. Подсветку и подсказки в редакторах даёт языковой сервер
сфера_lspиз репозитория. - Файлы с программами имеют расширение
.код, кодировка — UTF-8.
Установка
Windows. Скачайте установщик в разделе «Загрузки» либо возьмите исходники с GitHub и запустите от имени администратора скрипт установить-windows.ps1. Он ставит Rust, LLVM и всё нужное, собирает компилятор и добавляет в PATH команду запустить.
Linux и macOS. Нужны Rust и LLVM 18 (переменная LLVM_SYS_180_PREFIX должна указывать на его установку):
git clone https://github.com/nikitosklim/Sfera
cd Sfera
./собрать.sh
Скрипт соберёт компилятор и положит команду запустить в /usr/local/bin, а стандартную библиотеку — в /usr/local/lib/sfera.
Проверьте установку: команда запустить без аргументов напечатает подсказку по использованию.
Первая программа
Создайте файл привет.код:
функция главная(): целое
вывести("Привет, мир!");
вернуть 0;
конец
Здесь всего три важные вещи:
- каждая программа начинается с функции
главная, которая возвращаетцелое— код завершения (0— всё хорошо); - блок закрывается словом
конец— открывающей скобки нет; - у каждой команды в конце ставится
;.
Запуск и сборка
запустить привет.код
Эта команда собирает программу и сразу запускает её. Чтобы только собрать исполняемый файл, добавьте флаг -c (подойдёт и кириллическая -с, либо --только-собрать):
запустить привет.код -c
Рядом появится готовый исполняемый файл привет (на Windows — привет.exe), который можно запускать без компилятора.
Строки с подстановкой
Внутри строки можно вставлять значения переменных через %имя%, а произвольные выражения — через %(выражение)%. Сам знак процента пишется как %%.
функция главная(): целое
целое возраст = 30;
дробное рост = 1.82;
текст имя = "Никита";
верно студент = нет;
вывести("Имя: %имя%");
вывести("Возраст: %возраст%, рост: %рост%");
вывести("Студент: %студент%");
вывести("Через 5 лет: %(возраст + 5)%");
вернуть 0;
конец
Результат:
Имя: Никита
Возраст: 30, рост: 1.820000
Студент: нет
Через 5 лет: 35
Что дальше
Короткие уроки — по порядку:
- Переменные, условия и циклы
- Функции и структуры
- Список, Словарь и текст
- Ошибки без исключений
- Контракты и полиморфизм
- Свой веб-сервер
Полный справочник — документация. Если что-то не получилось, напишите в issues на GitHub: это самый ценный отзыв.