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

3755

Описание

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 имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных. [Материал из Википедии]

1 страница из 51
читать на одной стр.
Настроики
A

Фон текста:

  • Текст
  • Текст
  • Текст
  • Текст

Шрифты

  • Аа

    Roboto

  • Аа

    Garamond

  • Аа

    Fira Sans

  • Аа

    Times

  • Аа

    Iowan

  • Аа

    San Francisco

  • Аа

    SF Serif

  • Аа

    New York

  • Аа

    Helvetica Neue

  • Аа

    Arial

  • Аа

    Georgia

  • Аа

    Times New Roman

  • Аа

    Courier

  • Аа

    Courier New

  • Аа

    Menlo

  • Аа

    SF Mono

стр.

Язык программирования Euphoria. Справочное руководство (fb2) файл не оценен - Язык программирования Euphoria. Справочное руководство (Euphoria) 402K скачать: (fb2) - (epub) - (mobi) - Коллектив авторов


Язык программирования 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 -- euphoria\tutorial\example.ex . Это не самый быстрый из методов сортировки, доступных в Euphoria. Перейдите в каталог -- euphoria\demo -- и введите команду "ex allsorts", чтобы проверить хронометраж различных алгоритмов сортировки при возрастании числа сортируемых объектов. Быстрый учебный пример программирования аналогичной функции на Euphoria вы можете также найти в -- euphoria\demo\bench\filesort.ex .


1.2 Установка

Чтобы установить систему Euphoria на своей машине, сначала прочтите инструкцию в файле install_r.doc . Установка заключается в простом копировании файлов euphoria на ваш жесткий диск в каталог (директорию) с именем "euphoria", и последующей модификации вашего файла autoexec.bat с таким расчётом, чтобы включить каталог euphoria\bin в путь поиска, а переменную окружения EUDIR установить на каталог euphoria.

После установки каталог euphoria на вашей машине будет выглядеть примерно так:

Комментарии к книге «Язык программирования Euphoria. Справочное руководство», Коллектив авторов

Всего 0 комментариев

Комментариев к этой книге пока нет, будьте первым!

РЕКОМЕНДУЕМ К ПРОЧТЕНИЮ

Популярные и начинающие авторы, крупнейшие и нишевые издательства