Книга: Язык программирования Euphoria. Справочное руководство

2.6 Специальные команды высшего уровня

2.6 Специальные команды высшего уровня

Перед тем, как исполнять любую из ваших команд, интерфейсный блок интерпретатора Euphoria быстро читает всю вашу программу полностью от начала и до конца. Все ваши команды проверяются синтаксически и преобразуются в низкоуровневый код на промежуточном языке (IL). Затем исполнительный блок интерпретатора немедленно приступает к исполнению кода IL, размещённого в оперативной памяти. Биндер/шроудер записывает код IL в файл .il на диск для последующих немедленных исполнений с отдельным исполнительным блоком. Транслятор преобразует код IL в код C и записывает программу C на диск. Во всех этих трёх методах преобразования текста исходного кода Euphoria используется один и тот же интерфейсный блок (написанный на Euphoria).

Если ваша программа содержит только объявления подпрограмм и переменных, но не имеет команд высшего уровня, то после её запуска не произойдёт ровно ничего (кроме, конечно, проверки синтаксиса и формирования кода IL). Поэтому в вашей программе должна быть хотя бы одна команда высшего уровня, например, вызывающая вашу главную подпрограмму на исполнение (см. 1.1 Пример программы). Возможны программы, в которых нет ничего, кроме исполняемых команд высшего уровня, без каких бы то ни было подпрограмм. Например, вы можете использовать Euphoria как простой калькулятор, записав просто несколько команд print() (или ?) с выражениями в файл, и затем исполняя его.

Как мы уже видели, на высшем уровне вы можете использовать почти любую команду Euphoria, включая циклы for, циклы while, команды if и так далее (но не return). Высший уровень - это уровень вашего главного файла на тех участках его текста, которые не относятся к определению подпрограмм, то есть вне тела любых ваших функций или процедур. Но имеется несколько специальных команд, которые могут появиться в вашей программе только на высшем уровне, это:

* include

* with / without

Оглавление книги


Генерация: 1.135. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз