KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » W Cat - Язык программирования Euphoria. Справочное руководство

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

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн W Cat, "Язык программирования Euphoria. Справочное руководство" бесплатно, без регистрации.
Перейти на страницу:

- выдаёт адрес свободного участка памяти заданного объёма

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


См. также:

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*