Быстрый старт

За десять минут вы установите «Сферу», напишете первую программу и запустите её. Весь язык — на русском: ключевые слова, типы, стандартная библиотека. Набирать код можно, не переключая раскладку.

Что понадобится

  • 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

Что дальше

Короткие уроки — по порядку:

  1. Переменные, условия и циклы
  2. Функции и структуры
  3. Список, Словарь и текст
  4. Ошибки без исключений
  5. Контракты и полиморфизм
  6. Свой веб-сервер

Полный справочник — документация. Если что-то не получилось, напишите в issues на GitHub: это самый ценный отзыв.