W Cat - Язык программирования Euphoria. Справочное руководство
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
W Cat - Язык программирования Euphoria. Справочное руководство краткое содержание
Язык программирования Euphoria. Справочное руководство читать онлайн бесплатно
Язык программирования Euphoria
версия 3.1 Справочное руководство (c) 2007 Rapid Deployment Software Разрешено свободное копирование этого Руководства. Источник данного текста: http://rapideuphoria.com/russian/refman_r.htmЧасть I - Ядро языка
1. Введение
Язык программирования Euphoria имеет следующие преимущества перед другими языками:
* исключительно простое, гибкое и мощное определение ядра, которое легко поддаётся изучению и дальнейшему использованию.
* динамическое распределение памяти. Переменные изменяются, не доставляя программисту забот о выделении под них и высвобождении участков памяти. Объекты любой размерности могут быть присвоены элементу ряда (массива) Euphoria.
* уникальный высокопроизводительный интерпретатор, который в 30 раз быстрее обычных интерпретаторов вроде Perl или Python.
* оптимизирующий транслятор с Euphoria на Си, ещё более разгоняющий вашу программу, часто от 2-х до 5-ти раз прибавляя ей скорости по сравнению с интерпретатором, и без того необыкновенно быстрым.
* широкая проверка правильности хода программы: контролируются индексы вне диапазона, неинициализированные переменные, неверные величины параметров библиотечных подпрограмм, недопустимые типы данных, присваиваемых переменным и т.п. Здесь практически не бывает загадочных машинных исключений -- вы всегда получаете полное описание на человеческом языке того, что случилось с вашей программой во время её прогона, плюс распечатку последовательности вызовов подпрограмм и значений всех переменных программы. Программа отлаживается быстро, просто и более досконально.
* вы полностью защищены от необходимости знать особенности вашей машины. Для программирования не требуются сведения о длине машинных слов, представлении величин на битовом уровне, порядке байтов и т.д. и т.п.
* в интерпретатор встроены полноэкранный отладчик исходного кода и профилировщик хода программы. В пакете имеется полноэкранный многофайловый редактор с цветной подсветкой правильного синтаксиса и автозавершением стандартных конструкций языка. Этот редактор написан на Euphoria, и его исходный код предоставляется вам без каких бы то ни было ограничений.
* программы Euphoria работают на платформах Linux, FreeBSD, 32-битной Windows и DOS любой версии, не имея никаких ограничений на объем доступной для использования памяти, в том числе, пресловутых 640K. Вы можете создавать программы, которые автоматически используют всю много-мегабайтную оперативную память вашей машины, плюс дисковый файл памяти, если оперативной оказывается недостаточно.
* вы можете трансформировать исходный код ваших программ в самостоятельные двоичные исполняемые файлы разнообразных типов и форматов.
* подпрограммы Euphoria естественным образом универсальны. Пример программы, который вы найдете чуть ниже, демонстрирует единственную подпрограмму, которая одинаково успешно сортирует данные любого типа : целые числа, числа с плавающей точкой, строки и т.д. При этом Euphoria не является "объектно-ориентированным" языком, а достигает многих преимуществ этих языков значительно более простым путём.
* система программирования Euphoria полностью свободна и открыта.
1.1 Пример программы
Здесь представлен пример завершённой программы Euphoria.
~~~~~~~~~~~
sequence list, sorted_list
function merge_sort(sequence x)
-- сортирует x в порядке возрастания методом рекурсивного слияния
integer n, mid
sequence merged, a, b
n = length(x)
if n = 0 or n = 1 then
return x -- тривиальный случай
end if
mid = floor(n/2)
a = merge_sort(x[1..mid]) -- сортируется первая половина x
b = merge_sort(x[mid+1..n]) -- сортируется вторая половина x
-- слияние двух отсортированных половинок
merged = {}
while length(a) 0 and length(b) 0 do
if compare(a[1], b[1]) then
merged = append(merged, a[1])
a = a[2..length(a)]
else
merged = append(merged, b[1])
b = b[2..length(b)]
end if
end while
return merged & a & b -- слитые данные плюс остатки
end function
procedure print_sorted_list()
-- генерирует sorted_list из list
list = {9, 10, 3, 1, 4, 5, 8, 7, 6, 2}
sorted_list = merge_sort(list)
? sorted_list
end procedure
print_sorted_list() -- эта команда запускает программу
~~~~~~~~~~~
Данный пример содержит 4 отдельные команды, которые выполняются последовательно. Первая объявляет две переменные: list и sorted_list как ряды (sequence) (гибкие массивы). Вторая определяет функцию merge_sort(). Третья определяет процедуру print_sorted_list(). Четвёртая и последняя команда вызывает процедуру print_sorted_list() на исполнение.
Программа печатает на экране:
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}.
merge_sort() так же легко отсортирует {1.5, -9, 1e6, 100} или {"oranges", "apples", "bananas"} .
Данный пример имеется в каталоге Euphoria -- euphoriatutorialexample.ex . Это не самый быстрый из методов сортировки, доступных в Euphoria. Перейдите в каталог -- euphoriademo -- и введите команду "ex allsorts", чтобы проверить хронометраж различных алгоритмов сортировки при возрастании числа сортируемых объектов. Быстрый учебный пример программирования аналогичной функции на Euphoria вы можете также найти в -- euphoriademobenchfilesort.ex .
1.2 Установка
Чтобы установить систему Euphoria на своей машине, сначала прочтите инструкцию в файле install_r.doc . Установка заключается в простом копировании файлов euphoria на ваш жесткий диск в каталог (директорию) с именем "euphoria", и последующей модификации вашего файла autoexec.bat с таким расчётом, чтобы включить каталог euphoriabin в путь поиска, а переменную окружения EUDIR установить на каталог euphoria.
После установки каталог euphoria на вашей машине будет выглядеть примерно так:
euphoria readme.doc readme.htm License.txt bin Интерпретаторы ex.exe и exw.exe. Трансляторы ec.exe и ecw.exe. Или на Linux/FreeBSD, интерпретатор exu и транслятор ecu. Здесь также будут служебные программы, такие как ed.bat, guru.bat и т.д. include стандартные библиотеки, т.е. graphics.e и т.п. source полный исходный код (интерпретатор, транслятор, биндер) doc refman.doc, library.doc и другие файлы документации в простом текстовом формате html файлы формата HTML, соответствующие каждому из файлов .doc в каталоге doc tutorial небольшие учебные программы, которые помогут вам в изучении Euphoria demo общие демо-программы, которые работают на всех платформах dos32 демо-программы, специфические для DOS32 (может не быть) win32 демо-программы, специфические для WIN32 (может не быть) linux демо-программы, специфические для Linux/FreeBSD (может не быть) langwar игра language war (пиксельно-графическая версия для DOS или текстовая версия для Linux/FreeBSD) bench программы оценки производительности Подкаталог Linux не включается в пакет для DOS/Windows, а dos32 и win32 подкаталоги не включаютя в пакет для Linux/FreeBSD. В данном Руководстве каталоги показаны с использованием обратной косой черты. ( ). Пользователи Linux/FreeBSD должны помнить, что там действует обычная косая черта( / ).
1.3 Запуск программы
Программы Euphoria запускаются из командной строки вводом команды ex , exw или exu , сопровождаемой именем главного файла программы Euphoria. Вы также можете вводить здесь дополнительные слова (известные как аргументы командной строки ). Ваша программа может вызывать встроенную функцию command_line(), чтобы прочесть всю введённую вами командную строку. Версия интерпретатора Euphoria для DOS32 называется ex.exe . Версия для WIN32 называется exw.exe . Версия для Linux/FreeBSD называется exu . Как это здесь принято, главные файлы программ Euphoria имеют расширения .ex , .exw или .exu . Другие файлы Euphoria, предназначенные для включения в главную программу, имеют расширения .e или иногда .ew или .eu . Чтобы сократить команду, вы можете опускать ".ex", и интерпретатор ex будет подставлять это расширение для вас автоматически. exw.exe будет подставлять ".exw", а exu -- ".exu". Каждый из интерпретаторов перебирает и другие возможные расширения, если файл с основным расширением не нашёлся. Если файла с заданным именем, но ни с одним из условленных расширений, нет в текущем каталоге, проверяются каталоги из переменной окружения PATH (сначала с использованием основного расширения, а затем остальных).
Вы можете перенаправлять стандартные ввод и вывод из программы Euphoria, например:
ex filesort.ex sorted.txt
или просто,
ex filesort sorted.txt
В отличие от многих других компиляторов и интерпретаторов, здесь нет аргументов командной строки, предназначенных для изменения режима собственно интерпретаторов ex , exw или exu . Интерпретатор реагирует только на имя вашей программы Euphoria, и если вы не указали это имя, он пригласит вас к его вводу.