Язык программирования Euphoria

Язык программирования 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
Всего страниц: 62
ISBN: -
Год издания: Не установлен
Формат: Полный

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


Еще от автора Неизвестный Автор
Галчонок

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Призраки ночи

В книге собраны предания и поверья о призраках ночи — колдунах и ведьмах, оборотнях и вампирах, один вид которых вызывал неподдельный страх, леденивший даже мужественное сердце.


Закат  вечности

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


mmmavro.org | День 131, Победа

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


mmmavro.org | День 132, Поэт

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Песнь о Нибелунгах

…«Песнь о Нибелунгах» принадлежит к числу наиболее известных эпических произведений человечества. Она находится в кругу таких творений, как поэмы Гомера и «Песнь о Роланде», «Слово о полку Игореве» и «Божественная комедия» Данте — если оставаться в пределе европейских литератур…В. Г. Адмони.


Рекомендуем почитать
Венеция. Прекрасный город

Новая книга Питера Акройда – очередное доказательство того, что биография города не менее, а возможно и более увлекательна, чем биография любой знаменитости. Особенно если новым героем исторического расследования Акройда становится Венеция. Самый загадочный и независимый город Италии, бывшая республика, расположенная на ста восемнадцати островах, город, над которым постоянно висит угроза затопления, Акройд описывает в свойственной ему манере документалиста-романтика. Акройд разбирается в том, почему венецианцы так отличаются от остальных жителей Италии, как получилось, что на постоянно подтопляемых островах появились и сохранились сотни произведений искусства, и когда великая империя купцов и художников превратилась в город Казановы, туристов и резиновых сапог.


Кентерберийские рассказы: Переложение поэмы Джеффри Чосера

«Я не верю, что прошлое непременно находится в прошлом. Оно вечно, оно всегда вокруг нас», – так говорит Питер Акройд. И доказывает это всему миру своим переводом со староанглийского на современный язык одной из величайших поэм Джеффри Чосера (1343–1400). «Кентерберийские рассказы» – это мозаика из удивительных историй: религиозных, бытовых, романтических, поведанных средневековыми паломниками по пути из Лондона в Кентербери, людьми разных возрастов, социального положения и темперамента, и голос каждого из них сохраняет яркость и свежесть просторечного стиля.


Волшебный локон Ампары

Сам Сергей Павлов сказал о себе так: «Я космонавт, который не летал». Поэтому неудивительно, что самый известный его роман, «Лунная радуга», посвящен именно освоению Внеземелья, трудностям, опасностям и невероятным открытиям, ожидающим человечество на этом нелегком пути. Глубокая разработка характеров, напряженный сюжет, убедительные описания техники и быта наших потомков делают повествование увлекательным и достоверным.


Вторая экспедиция на Странную планету

Через двадцать лет на Странную планету прилетает вторая экспедиция. Странные явления ожидают землян на этой Странной планете. Капитан звездолета Антон Новак в процессе исследований разрушает «ракетку», являющуюся одной из многих на этой планете. И только после этого он понимает, что экспедиция встретилась с кристаллоидами, разумной расой. Опасаясь за участь Земли, Антон принимает необдуманное решение — уничтожить рой «ракеток», последовавших за кораблем.


Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.