W Cat - Язык программирования Euphoria. Справочное руководство
- Название:Язык программирования Euphoria. Справочное руководство
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
W Cat - Язык программирования Euphoria. Справочное руководство краткое содержание
Euphoria (юфо'ри, также рус. эйфори'я, ра'дость) — язык программирования, созданный Робертом Крейгом (Rapid Deployment Software) в Канаде, Торонто. Название Euphoria — это акроним для «End-User Programming with Hierarchical Objects for Robust Interpreted Applications».
Euphoria — интерпретируемый императивный язык высокого уровня общего назначения. C помощью транслятора из исходного кода на Euphoria может быть сгенерирован исходный код на языке Си, который в свою очередь может быть скомпилирован в исполнияемый файл или динамическую библиотеку при помощи таких компиляторов, как GCC, OpenWatcom и др. Программа Euphoria также может быть «связана» с интерпретатором для получения самостоятельного исполняемого файла. Поддерживается несколько GUI-библиотек, включая Win32lib и оберток для wxWidgets, GTK+ и IUP. Euphoria имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.
[Материал из Википедии]
Язык программирования Euphoria. Справочное руководство - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Комментарии:
Перед вызовом set_vector() вы должны разместить машинный код подпрограммы обработчика прерывания в памяти по адресу s.
16-битный сегмент может быть сегментом кода, используемым Euphoria. Чтобы получить значение для этого сегмента, см. demo\dos32\hardint.ex. Смещение может быть 32-битной величиной, выдаваемой функцией allocate(). Euphoria исполняется в защищённом режимес сегментами кода и данных, расположенными в одной и той же физической памяти, но с различными режимами доступа.
Прерывания, произошедшие в реальном режимеили в защищённом режиме, будут вызывать ваш обработчик. Прежде чем пытаться обращаться к памяти, ваш обработчик должен немедленно загрузить правильный сегмент данных.
После отработки подпрограммы прерывания ваш обработчик может вернуть управление вызвавшей прерывание программе, выполнив инструкцию iretd, или путем перехода на оригинальный обработчик. Обработчик должен сохранять и затем восстанавливать состояние всех регистров, значения которых он переписывает.
Вы должны заблокировать память, занимаемую вашим обработчиком, чтобы быть уверенным, что он никогда не будет перенесен на диск при использовании виртуальной памяти. См. lock_memory().
Настоятельно рекомендуем изучить работу файла demo\dos32\hardint.ex, прежде чем пытаться устанавливать собственный обработчик прерывания.
Вы должны хорошо знать программирование на машинном уровне, чтобы писать свои собственные обработчики прерываний.
Вы можете вызвать set_vector() с дальним адресом, выданным get_vector(), если возникла необходимость восстановить исходный оригинальный обработчик.
Пример:
set_vector(#1C, {code_segment, my_handler_address})
Пример программы:
demo\dos32\hardint.e x
См. также:
get_vector, lock_memory, allocate
sin
Синтаксис:
x2 = sin(x1)
Описание:
Выдаёт синус x1, где x1 выражено в радианах.
Комментарии:
Данная функция может быть применена к атому или ко всем элементам ряда.
Пример:
sin_x = sin({.5, .9, .11})
-- sin_x равен {.479, .783, .110}
См. также:
cos, tan
sleep
Синтаксис:
include misc.e
sleep(i)
Описание:
Приостанавливает исполнение программы на i секунд.
Комментарии:
Под WIN32 и Linux/FreeBSD операционная система будет приостанавливать вашу программу и отдавать управление другим запущенным программам. Под DOS32 ваша программа будет исполнять занятый цикл в течение i секунд, во время которых другие программы могут выполняться, но на конкурентной основе за обладание процессором.
При работе в режиме многозадачности приостанавливается вся программа, а не только текущая задача. Чтобы приостановить текущую задачу, вы можете вызвать task_schedule(task_self(), {i, i}), а затем исполнить task_yield().
Пример:
puts(1, "Остановка на 15 секунд ...\n")
sleep(15)
puts(1, "Остановка закончена.\n")
См. также:
lock_file, abort, time
sort
Синтаксис:
include sort.e
s2 = sort(s1)
Описание:
Сортирует ряд s1 в порядке возрастания, используя быстрый алгоритм сортировки. Элементы s1 могут быть любой смесью атомов или рядов. Атомы идут перед рядами, а ряды сортируются в "алфавитном" порядке, так, что сначала сортировка выполняется по первым элементам (полям), затем, если первые эквивалентны, по вторым и т.д. Выдаёт отсортированный ряд.
Пример 1:
x = 0 & sort({7,5,3,8}) & 0
-- x становится равным {0, 3, 5, 7, 8, 0}
Пример 2:
y = sort({"Smith", "Jones", "Doe", 5.5, 4, 6})
-- y равно {4, 5.5, 6, "Doe", "Jones", "Smith"}
Пример 3:
database = sort({{"Smith", 95.0, 29},
{"Jones", 77.2, 31},
{"Clinton", 88.7, 44}})
-- 3 "записи" в базе данных будут отсортированы по первому "полю",
-- т.е. по имени. Там, где первые поля (элементы) эквивалентны,
-- сортировка будет производиться по второму полю и т.д.
-- после сортировки база данных примет вид:
{{"Clinton", 88.7, 44},
{"Jones", 77.2, 31},
{"Smith", 95.0, 29}}
См. также:
custom_sort, compare, match, find
sound
Платформа:
DOS3 2
Синтаксис:
include graphics.e
sound(i)
Описание:
Включает системный громкоговоритель (звукоизлучатель) PC на частоте i Гц. Если подать аргумент i, равный 0, громкоговоритель будет выключен.
Комментарии:
Под WIN32и Linux/FreeBSDзвуки этой процедурой не генерируются.
Пример:
sound(1000) -- включается непрерывный высокий тон частотой 1000 Гц
sprint
Синтаксис:
include misc.e
s = sprint(x)
Описание:
Выдаёт представление x как символьной строки. Это точно то же самое, что и print(fn, x), но вывод производится не в файл и не на устройство (экран), а в ряд. x может быть любым объектом Euphoria. The representation of x as a string of characters is returned. This is exactly the same as print(fn, x), except that the output is returned as a sequence of characters, rather than being sent to a file or device. x can be any Euphoria object.
Комментарии:
Атомы, содержащиеся в x, будут выведены максимум с 10 значащими цифрами, как и при помощи print().
Пример 1:
s = sprint(12345)
-- s равно "12345"
Пример 2:
s = sprint({10,20,30}+5)
-- s равно "{15,25,35}"
См. также:
print, sprintf, value, get
sprintf
Синтаксис:
s = sprintf(st, x)
Описание:
Эта функция делает точно то же самое, что и printf(), но вывод производится не в файл и не на устройство (экран), а в ряд. Ряд st является строкой формата, x - величина или ряд, подлежащие форматированию. printf(fn, st, x)является эквивалентом для puts(fn, sprintf(st, x)).
Комментарии:
Некоторые типовые применения sprintf():
1. Преобразование чисел в строки.
2. Создание строк для подачи в system().
3. Создание форматированных сообщений об ошибках, которые могут быть поданы в обработчик общих сообщений об ошибках.
Пример:
s = sprintf("%08d", 12345)
-- s равно "00012345"
См. также:
printf, value, sprint, get, system
sqrt
Синтаксис:
x2 = sqrt(x1)
Описание:
Выдаёт квадратный корень x1.
Комментарии:
Данная функция может быть применена к атому или ко всем элементам ряда.
Попытка извлечь квадратный корень из отрицательного числа вызовет аварийное завершение вашей программы с сообщением об ошибке времени исполнения.
Пример:
r = sqrt(16)
-- r равно 4
См. также:
log, power
system
Синтаксис:
system(st, i)
Описание:
Подаёт командную строку st в интерпретатор команд операционной системы для немедленного исполнения. Аргумент i необходим для указания способа возвращения из дочерней программы, запущенной командой system():
Когда i равно 0, предыдущий графический режим восстанавливается и экран очищается.
Когда i равно 1, выдаётся звуковой сигнал и программа ждет нажатия пользователя на клавишу, прежде чем восстановить предыдущий графический режим.
Когда i равно 2, графический режим не восстанавливается и экран не очищается.
Комментарии:
i = 2 должно использоваться, только когда известно, что команда, выполняемая system(), не будет изменять графический режим.
Читать дальшеИнтервал:
Закладка: