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

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

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
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

x = a + b

y[i] = y[i] + 1

y[i..j] = {1, 2, 3}

По этой команде предыдущая величина переменной или элемента(ов) ряда, или отрезка ряда аннулируется, а новая вступает в действие. Например, предположим, что x был 1000-элементным рядом, который мы инициализировали следующим образом:

object x

x = repeat(0, 1000) -- ряд, состоящий из 1000 нулей

а затем мы присвоили x значение атома:

x = 7

Такое действие полностью законно, так как мы объявили x как object. Предыдущая величина x, а именно, 1000-элементный ряд, просто исчезнет. Одновременно то пространство, которое занимал в памяти 1000-элементный ряд, будет автоматически возвращено в резерв вашей программы, благодаря динамическому распределению памяти, работающему в Euphoria.

Заметьте, что символ равенства '=' используется и для записи команды, и как оператор при проверке равенства в выражениях. Но здесь никогда не возникает путаница, так как присваивание в Euphoria является только командой, и оно не может быть использовано в составе выражений (как это бывает в других языках).

Euphoria имеет также некоторые дополнительные формы команды присваивания.

Чтобы сократить код и сделать его чуть-чуть красивее, вы можете объединить символ присваивания с одним из операторов:

+ - / * &

Например, вместо того, чтобы писать:

mylongvarname = mylongvarname + 1

вы можете записать:

mylongvarname += 1

вместо записи:

galaxy[q_row][q_col][q_size] = galaxy[q_row][q_col][q_size] * 10

будет работать:

galaxy[q_row][q_col][q_size] *= 10

а вместо:

accounts[start..finish] = accounts[start..finish] / 10

просто:

accounts[start..finish] /= 10

В общем случае, везде, где вы имеете присваивание в форме:

левая_часть = левая_часть оп выражение

вы можете записать:

левая_часть оп= выражение

где опможет быть одним из: + - * / &

Когда левая_часть содержит несколько индексирований/сечений, форма оп=будет исполняться обычно быстрее, чем длинная форма. Когда вы привыкнете к короткой форме, вы сможете заметить, что форму оп=легче читать, так как здесь нет необходимости визуально сравнивать левую_часть с её же копией, расположенной в команде справа.

2.5.2 вызов подпрограммы

Команда вызова подпрограммызаписывается как имя подпрограммы, сопровождаемое круглыми скобками, в которых должен находиться список величин аргументов, если они предусмотрены, то есть,

plot(x, 23)

2.5.3 команда if (если)

Команда ветвления if (если)проверяет некоторое условие, убеждаясь в его истинности (не-нуль) или ложности (0), а затем обеспечивает переход к выполнению соответствующих тех или иных серий других команд. В команде if могут содержаться дополнительные пункты проверки elsif (а_если)и else (иначе), то есть,

if a then

x = 1

end if

if a = 9 and find(0, s) then

x = 4

y = 5

else

z = 8

end if

if char = 'a' then

x = 1

elsif char = 'b' or char = 'B' then

x = 2

elsif char = 'c' then

x = 3

else

x = -1

end if

Обратите внимание, что elsif хотя и является сокращением от else if, но это сокращение делает текст более ясным, так как отпадает необходимость в лишнем end if, которое пришлось бы ставить при несокращенной форме. А так имеется только одна закрывающая "скобка" end if для всего блока команды if, даже когда в нём содержится множество пунктов elsif.

Выражения, входящие в пункты if и elsif, проверяются с использованием укороченной проверки истинности.

2.5.4 команда while (пока)

Команда while (пока) проверяет сопровождающее её выражение на истинность, и пока выражение истинно, циклически выполняет те команды, которые записаны далее в её теле, то есть,

while x 0 do

a = a * 2

x = x - 1

end while

Когда выражение, проверяемое командами if, elsif или while содержит операторы and или or, то проводятся укороченные вычисления. Например,

if a < 0 and b > 0 then ...

если a < 0 ложно, то Euphoria не будет беспокоиться о второй проверке (не больше ли b чем 0). Будет решено, что общий результат уже и без того соответствует лжи. Аналогично,

if a < 0 or b > 0 then ...

если a < 0 истинно, то Euphoria немедленно решит, что общий результат соответствует истине и без проверки величины b.

В общем, каждый раз, когда мы ставим условие в форме:

A and B

где A и B могут быть двумя любыми выражениями, Euphoria завершит расчёт, если A ложно, и немедленно станет считать общий результат ложью, даже не взглянув на выражение B.

Аналогично, в случае:

A or B

когда A истинно, Euphoria пропустит вычисление выражения B и учтёт результат как истину.

Если выражение B содержит вызов функции, то из-за возможности наличия у функции побочных эффектов, т.е. и других действий, кроме простой выдачи величины, вы получите предупреждение во время компиляции. Более старые версии Euphoria (до 2.1) не имели укороченной проверки, поэтому возможно, что некоторый старый код будет работать неправильно, хотя поиск в архивах Euphoria и не выявил какие-либо программы, зависящие от побочных эффектов в этом смысле.

Выражение, B в данном случае, может содержать какие-либо дефекты кода, которые во время исполнения программы могли бы спровоцировать её аварийную остановку. Но если Euphoria пропускает вычисление B, ошибка не будет обнаружена, например,

if x != 0 and 1/x 10 then -- деление на нуль пропущено

while 1 or {1,2,3,4,5} do -- пропущен незаконный результат с рядом

Выражение B могло бы даже содержать неинициализированную переменную, индекс вне границ и другие недопустимые вещи.

Всё это может вызывать недоумение, так как выглядит подобно неряшливому программированию, но фактически часто позволяет вам написать многие вещи более простым и более ясным образом. Например:

if atom(x) or length(x)=1 then

Без укороченной проверки у вас была бы проблема, когда x является атомом, так как длина для атомов не определена. Но с укороченной проверкой length(x) будет проверяться, только когда x является рядом. Аналогично:

-- найти 'a' или 'A' в s

i = 1

while i <= length(s) and s[i] != 'a' and s[i] != 'A' do

i += 1

end while

В данном цикле переменная i может стать больше length(s). Без укороченной проверки вас поджидала бы ошибка индексирования, когда s[i] вычисляется в самом последнем цикле. Но с укороченной проверкой циклические вычисления будут немедленно прерваны, как только выражение i <= length(s) станет ложным. Euphoria не будет вычислять s[i] != 'a' и не будет вычислять s[i] != 'A'. И вы, тем самым, будете застрахованы от ошибки индексирования.

Укороченная проверка and и or имеет место только в командах if, elsif и while. Она не используется в других контекстах. Например, команда присваивания:

x = 1 or {1,2,3,4,5} -- x будет присвоено значение {1,1,1,1,1}

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


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

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




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


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


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

Напишите свой комментарий
x