Глава 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 не объявлено.
Ошибки выполнения зависят от значений и состояния ресурсов; пример — деление на ноль. Правила перехвата и передачи ошибок описаны в разделе «Обработка ошибок».
См. также
- Переменные, константы и значения: объявление, хранение и изменение данных.
- BOOLEAN и логические значения: результаты проверок TRUE и FALSE.
- Системы счисления и побитовые операции: двоичная запись чисел, маски и сдвиги.
- Указатель встроенных функций и указатель операторов: поиск конструкции по имени.
- Запускаемые примеры: готовые файлы для открытия в IDE.
- Условные обозначения: правила чтения синтаксических схем.