Язык программирования Euphoria. Справочное руководство - W Cat
- Дата:16.11.2024
- Категория: Компьютеры и Интернет / Программирование
- Название: Язык программирования Euphoria. Справочное руководство
- Автор: W Cat
- Просмотров:0
- Комментариев:0
Шрифт:
Интервал:
Закладка:
- выдаёт адрес свободного участка памяти заданного объёма
free (освободить_память)
- освобождает участок памяти, ранее выделенный по команде allocate
allocate_low (выделить_память_внизу)
- выдаёт адрес свободного участка нижней памяти (адреса менее 1Mb) (DOS32)
free_low (освободить_память_внизу)
- освобождает участок памяти, ранее выделенный по команде allocate_low (DOS32)
allocate_string (поместить_строку_в_память)
- размещает в памяти заданную строку с нуль-терминатором и выдаёт её адрес
register_block (учесть_блок)
- регистрирует в списке безопасных блоков участок памяти, ранее уже выделенный какой-либо подпрограммой
unregister_block (вычеркнуть_блок)
- вычёркивает из списка безопасных ранее зарегистрированный блок памяти (см. выше)
get_vector (получить_адрес_вектора)
- выдаёт адрес обработчика прерывания (DOS32)
set_vector (установить_адрес_вектора)
- устанавливает адрес обработчика прерывания (DOS32)
lock_memory (запереть_память)
- предохраняет заданный блок памяти от перенесения на диск при работе виртуальной памяти (DOS32)
int_to_bytes (байты_из_целого)
- выдаёт 4 байта, соответствующие заданному целому
bytes_to_int (целое_из_байтов)
- выдаёт целое, соответствующее заданным 4 байтам
int_to_bits (биты_из_целого)
- выдаёт ряд битов, соответствующий заданному целому
bits_to_int (целое_из_битов)
- выдаёт целое, соответствующее заданному ряду битов
atom_to_float64 (атом_в_плавающее_64_бит)
- выдаёт ряд из 8 байтов, соответствующий заданному атому, в 64-битном формате IEEE для чисел с плавающей точкой
atom_to_float32 (атом_в_плавающее_32_бит)
- выдаёт ряд из 8 байтов, соответствующий заданному атому, в 32-битном формате IEEE для чисел с плавающей точкой
float64_to_atom (плавающее_64_бит_в_атом)
- выдаёт атом, соответствующий ряду из 8 байтов в 64-битном формате IEEE для чисел с плавающей точкой
float32_to_atom (плавающее_32_бит_в_атом)
- выдаёт атом, соответствующий ряду из 4 байтов в 32-битном формате IEEE для чисел с плавающей точкой
set_rand (установить_датчик_случайных_чисел)
- устанавливает датчик случайных чисел в режим выдачи помеченной серии чисел с восстанавливаемым порядком
use_vesa (использовать_vesa)
- переключает интерпретатор Euphoria в режим выполнения рекомендаций видеостандарта VESA (DOS32)
crash_file (файл_отчета_об_авосте)
- определяет файл для записи диагностической информации, если Euphoria обнаруживает ошибку в вашей программе
crash_message (сообщение_об_авосте)
- определяет сообщение об ошибке, которое будет выводиться, если Euphoria обнаруживает ошибку в вашей программе
crash_routine (подпрограмма_по_авосту)
- определяет подпрограмму, которая должна быть вызвана перед аварийной остановкой, если Euphoria обнаруживает ошибку в вашей программе
2.14 Динамические вызовы
Данные подпрограммы позволяют вам вызывать процедуры и функции Euphoria с использованием вместо обычного имени уникального целого числа, известного как идентификационный номер подпрограммы.
routine_id (подпрограмма_номер)
- выдаёт уникальный идентификационный номер, автоматически присваиваемый заданной подпрограмме Euphoria
call_proc (вызвать_процедуру)
- вызывает процедуру Euphoria по заданному идентификационному номеру
call_func (вызвать_функцию)
- выдаёт результат функции Euphoria, вызванной по заданному идентификационному номеру
2.15 Вызов функций Си (WIN32 и Linux)
Просмотрите файл platform_r.htm, где подробно описано программирование на Euphoria для операционных систем WIN32 и Linux.
open_dll (открыть_dll)
- открывает динамически подключаемую библиотеку Windows (.dll-файл) или общую библиотеку Linux (.so-файл)
define_c_proc (определить_процедуру_Си)
- определяет номер функции Си типа VOID, которая не выдаёт величины, или же когда ваша программа, используя данную функцию Си, игнорирует величину, выдаваемую этой функцией
define_c_func (определить_функцию_Си)
- определяет номер функции Си, которая выдаёт величину, подлежащую учёту и использованию в вашей программе
define_c_var (определить_переменную_Си)
- выдаёт адрес в памяти для заданной переменной Си
c_proc (процедура_Си)
- вызывает функцию Си, игнорируя выдаваемую ею величину
c_func (функция_Си)
- вызывает функцию Си и выдаёт её величину
call_back (обратный_вызов)
- выдаёт 32-битный машинный адрес подпрограммы Euphoria по заданному её номеру для использования в качестве адреса обратного её вызова из операционной системы
message_box (табличка_сообщения)
- выводит диалоговое окно для получения от пользователя ответа Да/Нет/Сброс
free_console (освободить_консоль)
- удаляет текстовое окно консоли
instance (экземпляр)
- выдаёт идентификатор состояния текущей программы
2.16 Многозадачность
Набор подпрограмм данного раздела позволяет вам организовывать в своей программе множественные независимые задачи, решаемые в режиме разделения времени. Каждая задача имеет свою собственную текущую исполняемую команду, свой собственный стек вызовов и своё собственное множество частных переменных. Локальные (местные) и глобальные переменные программы являются общими для всех задач. Когда в задаче вызывается подпрограмма task_yield(), выполнение задачи приостанавливается, управление передаётся диспетчеру задач Euphoria, и он решает, какую задачу из общей очереди следует поставить на дальнейшее исполнение.
Демонстрационная игра The Language War, lw.ex, широко использует механизм многозадачности для создания модели боя, в котором участвуют многочисленные независимо движущиеся корабли, торпеды, фазоры и т.д. Просмотрите также демо-программу taskwire.exw для Windows, и демо-программу news.exu для Linux и FreeBSD.
task_clock_start (задача_часы_старт)
- перезапускает часы диспетчера задач
task_clock_stop (задача_часы_стоп)
- останавливает часы диспетчера задач
task_create (задача_новая)
- создаёт новую задачу
task_list (задача_список)
- выдаёт список всех задач
task_schedule (задача_план)
- задаёт диспетчеру план решения задачи
task_self (задача_какая)
- выдаёт идентификатор текущей задачи (номер)
task_status (задача_состояние)
- выдаёт текущее состояние задачи (активна, приостановлена, прервана)
task_suspend (задача_стоп)
- приостанавливает решение задачи
task_yield (задача_другая)
- управление задачами передаётся диспетчеру, запускающему на исполнение другую задачу.
...
3. Алфавитный справочник по стандартным подпрограммам
от A до B
?
Синтаксис:
? x
Описание:
Это просто короткая форма записи для команды: pretty_print(1, x, {}), по которой на экране осуществляется печать величины объекта, заданного выражением. Для более наглядного отображения структуры объекта печать производится в столбик со скобками, запятыми и отступами. Единственное отличие от pretty_print() заключается в том, что печать по команде ? завершается ещё и автоматическим переводом курсора в начало новой строки.
Пример:
? {1, 2} + {3, 4} -- будет напечатано {4, 6}
См. также:
pretty_print, print
abort
Синтаксис:
abort(i)
Описание:
Прерывает исполнение программы. Аргумент i представляет собой небольшую целочисленную величину кода окончания программы, выдаваемого в операционную систему. Код окончания 0 в общем случае соответствует успешному завершению программы. Другие коды используются для указания на характер ошибки, по которой программа прервана. Пакетные программы DOS (.bat-файлы) могут считывать величину этого кода с помощью команды errorlevel. Программы Euphoria могут считывать эту величину, если дочерняя программа была запущена из подпрограммы system_exec().
Комментарии:
Подпрограмма abort() бывает особенно полезна, когда необходимо немедленно прервать исполнение программы изнутри глубоко вложенных вызовов подпрограмм, например, из-за обнаруженной опасной ошибки.
Если вы не применяете abort(), а программа завершается естественным порядком, интерпретаторы ex.exe/exw.exe/exu выдают в операционную систему код окончания 0. Если ваша программа прерывается по обнаруженной Euphoria ошибке времени компиляции или времени исполнения, выдаётся код 1.
Пример:
if x = 0 then
puts(ERR, "не могу делить на 0 !!!n")
abort(1)
else
z = y / x
end if
См. также:
- Создание настольных Python приложений с графическим интерфейсом пользователя - Тимур Машнин - Прочая околокомпьтерная литература / Интернет / Программирование
- Основы объектно-ориентированного программирования - Бертран Мейер - Прочая околокомпьтерная литература
- Язык программирования C++. Пятое издание - Стенли Липпман - Программирование
- Дворец памяти. 70 задач для развития памяти - Гарет Мур - Менеджмент и кадры
- Следующие шаги природы - Харл Орен Камминс - Научная Фантастика / Юмористическая фантастика