LibKing » Книги » comp-programming » W Cat - Язык программирования Euphoria. Справочное руководство

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

Тут можно читать онлайн W Cat - Язык программирования Euphoria. Справочное руководство - бесплатно полную версию книги (целиком). Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
libking
  • Название:
    Язык программирования Euphoria. Справочное руководство
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.25/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Ваша оценка:

W Cat - Язык программирования Euphoria. Справочное руководство краткое содержание

Язык программирования Euphoria. Справочное руководство - описание и краткое содержание, автор W Cat, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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. Справочное руководство - читать онлайн бесплатно полную версию (весь текст целиком)

Язык программирования Euphoria. Справочное руководство - читать книгу онлайн бесплатно, автор W Cat
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

В отношении пустых отрезковследует иметь в виду следующие детали. Рассмотрим отрезок s[i..j], где s имеет длину n. Отрезок от i до j, где j = i-1 и i >= 1 создает пустой ряд, даже если i = n+1. Таким образом, 1..0 и n+1..n, и все другие варианты внутри являются законными (пустыми) отрезками. Пустые отрезки весьма полезны во многих алгоритмах. Но отрезок от i до j, где j < i - 1 незаконен, т.е. "вывернутые" отрезки, такие как s[5..3], не разрешены.

С отрезками можно использовать сокращение $, то есть:

s[2..$]

s[5..$-2]

s[$-5..$]

s[$][1..floor($/2)] -- первая половина последнего элемента s

2.2.7 Сцепление рядов и атомов - операция &

Над любыми двумя объектами может быть произведена операция сцепления (конкатенации). Для этого служит оператор &- просто "и" в переводе на русский язык. Результатом операции является ряд, имеющий длину, равную сумме длин сцепленных объектов (здесь атомам как бы приписывается длина 1). То есть:

{1, 2, 3} & 4 -- {1, 2, 3, 4}

4 & 5 -- {4, 5}

{{1, 1}, 2, 3} & {4, 5} -- {{1, 1}, 2, 3, 4, 5}

x = {}

y = {1, 2}

y = y & x -- y всё ещё остается равным {1, 2}

Вы можете удалить элемент i любого ряда s, сцепив отрезки ряда до и после ненужного элемента i:

s = s[1..i-1] & s[i+1..length(s)]

Этот приём работает, даже когда i равно 1 или length(s), так как s[1..0] является законным пустым отрезком, так же как и s[length(s)+1..length(s)].

2.2.8 Формирование ряда

Операция формирования ряда записывается с помощью фигурных скобок и запятых:

{a, b, c, ... }

В ней участвует n операндов, где n равно 0 или более. В результате операции из величин элементов создается n-элементный ряд. То есть,

x = {apple, orange*2, {1,2,3}, 99/4+foobar}

Операция формирования ряда выполняется в последнюю очередь, см. Порядок операций.

2.2.9 Другие операции на рядах

Для обозначения некоторых других важных операций, которые вы можете выполнять, используются английские слова, а не специальные символы, о которых шла речь ранее. Эти операции выполняются с помощью функций, встроенных в интерпретаторы ex.exe/ exw.exe/ exu, следовательно, они всегда под рукой, следовательно, они очень быстрые. Они детально описаны в документе Часть II - Библиотека подпрограмм, но очень важны для программирования на Euphoria, поэтому мы должны упомянуть о них здесь, прежде чем продолжить разговор о других вещах. Эти операции запускаются на исполнение так, как если бы они были подпрограммами, хотя на самом деле их воплощение значительно более эффективно, чем обычных подпрограмм.

Функция length(s)выдаёт вам значение текущей длины ряда s. Это число элементов в ряде s. Некоторые из этих элементов сами могут быть рядами, содержащими другие элементы, но наша функция даёт число элементов самого "верхнего" уровня, считая каждый ряд на этом уровне за единственный элемент. При попытке определения длины атома выдаётся сообщение об ошибке, то есть,

length({5,6,7}) -- 3

length({1, {5,5,5}, 2, 3}) -- 4 (не 6!)

length({}) -- 0

length(5) -- ОШИБКА!

Функция repeat(item, count)выдает ряд, который состоит из элементов 'item', повторенных 'count' раз, то есть,

repeat(0, 100) -- {0,0,0,...,0} т.е. 100 нулей

repeat("Hello", 3) -- {"Hello", "Hello", "Hello"}

repeat(99,0) -- {}

Элемент, подлежащий повторению, может быть любым атомом или рядом.

Функция append(s, item)выдаёт новый ряд, добавляя элемент 'item' после конца ряда 's'. Функция prepend(s, item)выдаёт новый ряд, прибавляя элемент 'item' перед началом ряда 's', то есть,

append({1,2,3}, 4) -- {1,2,3,4}

prepend({1,2,3}, 4) -- {4,1,2,3}

append({1,2,3}, {5,5,5}) -- {1,2,3,{5,5,5}}

prepend({}, 9) -- {9}

append({}, 9) -- {9}

Длина нового ряда всегда на 1 больше, чем длина исходного ряда. Присоединяемый элемент может быть любым атомом или рядом.

Эти две встроенные функции, append()и prepend(), в чём-то похожи на оператор сцепления, &, но имеется и вполне ясное отличие, то есть,

-- присоединение ряда отличается

append({1,2,3}, {5,5,5}) -- {1,2,3,{5,5,5}}

{1,2,3} & {5,5,5} -- {1,2,3,5,5,5}

-- присоединение атома идентично

append({1,2,3}, 5) -- {1,2,3,5}

{1,2,3} & 5 -- {1,2,3,5}

2.2.10 Порядок операций

Порядок выполнения операций интерпретатором показан в таблице:

unary- unary+ not

* /

+ -

&

<= = = !=

and or xor

последняя очередь:{ , , , }

Следовательно, 2+6*3 означает 2+(6*3), а не (2+6)*3. Операторы, расположенные в таблице в одной строке, имеют одинаковую очерёдность и поэтому выполняются в том порядке, как записаны в выражении слева направо. Вы можете задать любой другой необходимый вам порядок операций, воспользовавшись в вашем выражении круглыми скобками ( ).

Символ равенства '=', используемый для записи не только операции сравнения, но и команды присваивания, не создаёт двусмысленностей в программе, так как его конкретное назначение вполне ясно из контекста.

2.3 Euphoria против других языков

Положив в основу Euphoria ряды как единственную, простую, общую, рекурсивную структуру данных, удалось избежать громадного объёма сложностей, обычно присутствущих в языках программирования. Массивы, структуры, союзы, массивы записей, многомерные массивы и другие тому подобные объекты других языков все могут быть легко представлены рядами. И структуры высшего уровня, такие как списки, стеки, архивы, очереди, деревья и т.д., тоже не ушли от этой участи.

Более того, в Euphoria вы можете иметь ряды смешанного типа; вы можете присвоить значение любого объекта элементу ряда; и ряды легко растут и сокращаются без всяких дополнительных усилий со стороны программиста по поводу вопросов выделения и освобождения памяти. Точная заблаговременная раскладка данных в структуры не требуется и она может быть создана и изменена динамически по мере необходимости. Легко пишется код общего характера, где, например, вы подаёте и извлекаете из единственного стека объекты разнообразного рода данных. Создание гибкого списка, который содержит разнообразные объекты данных, тривиально в Euphoria, но требует десятков строк уродливого кода в других языках.

Манипуляции с данными весьма эффективны, так как интерпретатор Euphoria не копирует большие объекты, а указывает на уже существующий экземпляр.

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

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

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


W Cat читать все книги автора по порядку

W Cat - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Язык программирования Euphoria. Справочное руководство, автор: W Cat. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img