Axiom Справочник языка

Глава 1

Знакомство с Axiom

Исходный файл Axiom с расширением .axm содержит объявления и инструкции программы: вычисления, обмен данными с пользователем и рисование. В среде разработки исходный текст можно редактировать, проверять без выполнения и запускать.

Исходный файл и выполнение

Объявления вводят имена переменных, подпрограмм и типов. Инструкции, записанные вне подпрограмм, относятся к верхнему уровню и выполняются последовательно. Тело подпрограммы выполняется при её вызове.

Оператор PRINT выводит текст и значения. В IDE обычная программа печатает в консоли; при активном SCREEN текст поступает в экранное окно. Холст CANVAS сам по себе не перенаправляет PRINT из консоли. Правила работы с обеими поверхностями приведены в главе графики.

Пример консольной программы

Пустой документ создаётся командой Файл → Новый (Ctrl+N). В приведённой программе переменная count хранит количество предметов; два оператора PRINT выводят это количество и его удвоенное значение:

DIM count AS INTEGER = 3
PRINT "Количество: "; count
PRINT count * 2

Объявление DIM задаёт для count тип INTEGER и начальное значение 3. В первом PRINT точка с запятой соединяет текст и число без добавочных символов: пробел перед числом уже входит в строку. Второй PRINT вычисляет count * 2; сама переменная сохраняет значение 3.

Вывод программы:

Количество: 3
6

Сохранение, проверка и запуск

ДействиеКомандаСочетание клавиш
Сохранение исходного файлаФайл → СохранитьCtrl+S
Проверка программыЗапуск → ПроверитьCtrl+Shift+C
Выполнение программыЗапуск → ЗапуститьCtrl+F5
Прерывание выполненияЗапуск → ОстановитьShift+F5

Команда «Проверить» обрабатывает исходный текст, не выполняя инструкции программы. Диагностики появляются в панели «Проблемы»; при наличии ошибок запуск недоступен. Приведённая программа завершается после последнего PRINT. Команда «Остановить» прерывает выполнение, в том числе ожидание ответа на INPUT.

Запускаемый пример объявления переменной и вывода

Строки и комментарии

Инструкции разделяются переводом строки. Пустые строки не выполняются. Двоеточие не поддерживается как разделитель инструкций.

Комментарий начинается с апострофа ' и занимает оставшуюся часть строки. Его можно записать отдельно или после инструкции. Вместо апострофа допускается слово REM с пробельным символом перед текстом комментария. Исполнитель пропускает содержимое комментариев.

' Количество предметов в коробке.
DIM count AS INTEGER = 3

REM Вывести удвоенное количество.
PRINT count * 2  ' Значение count остаётся прежним.

Результат:

6

Служебные метки разделов: #region и #endregion

Метки #region и #endregion в комментариях обозначают именованный раздел для IDE. В редакторе такой раздел можно свернуть; в панели «Структура программы» он объединяет связанные процедуры, функции и типы. На выполнение программы метки не влияют.

Каждую метку записывают на отдельной строке после апострофа. Открывающая и закрывающая строки имеют следующие формы:

' #region <название раздела>
' #endregion

После #region обязательно указывают непустое название раздела. Название может содержать пробелы и русские буквы; кавычки не требуются. После #endregion название не пишут. Регистр меток не важен, отступы перед апострофом и пробелы после него допускаются. Форма REM #region Название, текст метки внутри строки и комментарий после исполняемой инструкции раздел в панели не создают.

Пример функции в разделе «Числовые вычисления»:

PRINT Twice(3)

' #region Числовые вычисления
FUNCTION Twice(value AS INTEGER) AS INTEGER
    RETURN value * 2
END FUNCTION
' #endregion

Программа выводит 6. В панели «Структура программы» функция Twice находится в группе «Числовые вычисления», которую можно свернуть или раскрыть. В редакторе можно отдельно свернуть текст между метками; свёрнутость группы в панели и текста в редакторе независима.

Группа панели охватывает целые объявления SUB, FUNCTION или TYPE. Метки внутри подпрограммы позволяют свернуть её текст в редакторе, но не создают отдельную группу панели. Разделы могут быть вложенными: закрывающая метка завершает последний открытый раздел. Пустой раздел в панели не показывается.

Если у раздела нет названия, закрывающая метка не имеет пары или раздел не закрыт, панель показывает пояснение с номером строки. Незакрытый раздел панели продолжается до конца файла. Эти пояснения не являются ошибками компиляции. В дополнениях редактора доступна заготовка #region, которая вставляет обе метки.

Регистр ключевых слов и имён не различается: PRINT и print обозначают один оператор, count и Count обозначают одну переменную. Ключевые слова в справочнике записаны заглавными буквами. Имена состоят из латинских букв, цифр и подчёркиваний и не начинаются с цифры. Русский текст допускается в строках и комментариях. Подробные правила находятся в статье «Имена и области видимости».

Группы инструкций

Блок — группа инструкций, ограниченная ключевыми словами конструкции. В блоке IF обе инструкции PRINT выполняются только при истинном условии:

DIM count AS INTEGER = 3
IF count > 0 THEN
    PRINT "Есть предметы"
    PRINT count
END IF

Программа выводит:

Есть предметы
3

При ложном условии обе инструкции пропускаются. END IF закрывает блок независимо от отступов. У других конструкций свои завершающие слова: цикл FOR заканчивается NEXT, процедура SUB заканчивается END SUB. Подробности приведены в статьях IF, FOR и SUB.

Диагностика

Диагностика содержит код, описание и место в исходном тексте. Например, обращение PRINT coutn при объявленной переменной count вызывает MB2001: имя coutn не объявлено.

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

См. также