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. Справочное руководство - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Пример:
tick_rate(100)
-- time() идёт с шагом .01 секунды
-- вместо обычных .055 секунды
См. также:
time, time profiling
time
Синтаксис:
a = time()
Описание:
Выдаёт число секунд, прошедших от некоторого фиксированного момента в прошлом.
Комментарии:
Если вам нужно измерить, например, сколько времени ушло на выполнение какого-то участка кода вашей программы, найдите разность между двумя отсчетами time(), взятыми в начале и в конце данного участка кода.
Разрешение под DOS32обычно около 0.05 секунды. Под WIN32и Linux/FreeBSDразрешение около 0.01 секунды.
Под DOS32вы можете улучшить разрешение, вызвав процедуру tick_rate() с необходимым параметром.
Под DOS32период времени, который вы можете так измерить, ограничен 24 часами. После этого величина, выдаваемая time() будет переустановлена и начнётся новый счёт. Если, тем не менее, вы вызывали tick_rate(), и частота часов была выше обычной 18.2/сек, результат time() будет оставаться правильным намного дольше, так как в этом случае Euphoria обрабатывает прерывания от часов прямо и накапливает отсчёты в более ёмкой переменной, 32-битной.
Эмуляция DOS под Windows XP не вполне совершенна. Когда вы производите профилирование времени (with profile_time), функция time() может иметь погрешность до нескольких процентов. Эта проблема не имеет места под Windows ME/98/95.
На некоторых машинах функция time() может выдавать отрицательное число. Тем не менее, вы можете использовать разность отсчётов от time(), чтобы измерять истекшее время.
Пример:
constant ITERATIONS = 1000000
integer p
atom t0, loop_overhead
t0 = time()
for i = 1 to ITERATIONS do
-- время пустого цикла
end for
loop_overhead = time() - t0
t0 = time()
for i = 1 to ITERATIONS do
p = power(2, 20)
end for
? (time() - t0 - loop_overhead)/ITERATIONS
-- вычисление времени (в секундах) одного возведения в степень
См. также:
date, tick_rate
trace
Синтаксис:
with trace
trace(i)
Описание:
Если i равно 1 или 2, включается полноэкранная интерактивная трассировка/отладка исполнения команд программой. Если i равно 3, включается трассировка команд в файл протокола с именем ctrace.out. Если i равно 0, трассировка выключается. Когда i равно 1, отображение на экране трассировки цветное. Когда i равно 2, трассировка отображается в монохромном режиме. Трассироваться будут только те подпрограммы, которые были откомпилированны с метакомандой " with trace". Процедура trace() не будет давать эффекта, если вызвана вне участкавашей программы, на котором действует команда " with trace".
См. Часть I - 3.1 Отладка и профилирование, чтобы уяснить детали по вопросам трассировки и отладки.
Комментарии:
Используйте trace(2), если цветное отображение на вашей системе затруднено.
Все формы trace() поддерживаются интерпретатором.
Транслятором с Euphoria на Си поддерживается только trace(3).
Пример:
if x then
-- да, этот участок требует отладки...
trace(1)
-- и т.д.
...
end if
См. также:
profile, debugging and profiling
...
от U до Z
unlock_file
Синтаксис:
include file.e
unlock_file(fn, s)
Описание:
Отпирает открытый файл fn или участок файла fn. Данный файл должен быть перед этим заперт с использованием lock_file(). Под DOS32 и WIN32 вы можете отпереть некоторый участок внутри файла, задавая аргумент s в виде {первый_байт, последний_байт}. Этот же самый участок в файле должен быть перед этим заперт с использованием lock_file(). Под Linux/FreeBSD в данной версии вы можете запирать и отпирать только весь файл целиком. Аргумент s должен быть пустым рядом {}, если отпирается весь файл. Под Linux/FreeBSD аргумент s всегда должен быть пустым рядом {}.
Комментарии:
Вы должны отпереть запертый вами файл при первой же возможности, чтобы сделать доступным его использование другими программами (процессами).
Любые файлы, которые вы запираете из своей программы, будут автоматически отперты при завершении вашей программы.
См. lock_file() для изучения дальнейших комментариев и примера.
См. также:
lock_file
unregister_block
Синтаксис:
include machine.e (or safe.e)
unregister_block(a)
Описание:
Удаляет блок памяти из списка безопасных блоков, поддерживаемого safe.e(отладочной версией machine.e). Участок памяти, занятый этим блоком, начинается по адресу a.
Комментарии:
Данная процедура предназначена для использования только в отладочных целях. Применяйте её для вычеркивания блоков памяти, которые вы ранее внесли в список с помощью процедуры register_block(). Вычеркивая (удаляя) блок, вы исключаете его из списка безопасных блоков, поддерживаемого safe.e. Это предохраняет вашу программу от любых последующих операций чтения-записи по адресам внутри блока.
См. register_block() для уяснения деталей и изучения примера.
См. также:
register_block, safe.e
upper
Синтаксис:
include wildcard.e
x2 = upper(x1)
Описание:
Преобразует атом или ряд символов на латинском алфавите к верхнему регистру.
Пример:
s = upper("Euphoria")
-- s равно "EUPHORIA"
a = upper('g')
-- a равно 'G'
s = upper({"Euphoria", "Programming"})
-- s равно {"EUPHORIA", "PROGRAMMING"}
См. также:
lower
use_vesa
Платформа:
DOS3 2
Синтаксис:
include machine.e
use_vesa(i)
Описание:
use_vesa(1) переведет Euphoria в режим подчинения рекомендациям графического стандарта VESA. Это может улучшить работу программ Euphoria в режимах SVGA графики с некоторыми видеоплатами. use_vesa(0) восстановит оригинальный метод, применяемый Euphoria при работе с видеоплатами.
Комментарии:
Большинство пользователей Euphoria может не обращать на эту процедуру внимания. Однако, если возникли трудности при переходе в графические режимы SVGA, вы можете попытаться выполнить use_vesa(1) в начале вашей программы перед любыми вызовами функции graphics_mode().
Аргументы в use_vesa(), отличающиеся от 0 или 1, не должны использоваться.
Пример:
use_vesa(1)
fail = graphics_mode(261)
См. также:
graphics_mode
value
Синтаксис:
include get.e
s = value(st)
Описание:
Читает строковое представление объекта Euphoria и рассчитывает его величину. Выдаёт 2-х элементный ряд вида {error_status, величина}, где элемент error_status может быть одним из:
GET_SUCCESS -- найдено законное представление объекта
GET_EOF -- конец строки обнаружен слишком быстро
GET_FAIL -- неправильный синтаксис
Комментарии:
Данная функция работает точно так же как и get(), но чтение производится из строки, которую вы подаёте, а не из файла и не с устройства.
После прочтения одного законного представления объекта Euphoria value() приостанавливает дальнейшее чтение и игнорирует любые добавочные символы в строке. Например, "36" и "36P" - оба случая дадут вам {GET_SUCCESS, 36}.
Читать дальшеИнтервал:
Закладка: