|
|
|
Euphoria - плюсы и минусы02.09.2015, 17:34. Показов 18495. Ответов 44
Метки нет (Все метки)
Существует такой язык программирования как Euphoria, это акроним «End-User Programming with Hierarchical Objects for Robust Interpreted Applications».
Язык обьединяет в себе синтаксическую простоту basic, с некоторыми конструкциями языка C. Из https://ru.wikipedia.org/wiki/... мирования): "Euphoria — интерпретируемый императивный язык высокого уровня общего назначения. C помощью транслятора из исходного кода на Euphoria может быть сгенерирован исходный код на языке Си, который в свою очередь может быть скомпилирован в исполнияемый файл или динамическую библиотеку при помощи таких компиляторов, как GCC, OpenWatcom и др. Программа Euphoria также может быть «связана» с интерпретатором для получения самостоятельного исполняемого файла. Поддерживается несколько GUI-библиотек, включая Win32lib[9] и оберток для wxWidgets, GTK+ и IUP. Euphoria имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных." С сайта www.rapideuphoria.com " Euphoria против других языков Положив в основу Euphoria ряды как единственную, простую, общую, рекурсивную структуру данных, удалось избежать громадного объёма сложностей, обычно присутствущих в языках программирования. Массивы, структуры, союзы, массивы записей, многомерные массивы и другие тому подобные объекты других языков все могут быть легко представлены рядами. И структуры высшего уровня, такие как списки, стеки, архивы, очереди, деревья и т.д., тоже не ушли от этой участи. Более того, в Euphoria вы можете иметь ряды смешанного типа; вы можете присвоить значение любого объекта элементу ряда; и ряды легко растут и сокращаются без всяких дополнительных усилий со стороны программиста по поводу вопросов выделения и освобождения памяти. Точная заблаговременная раскладка данных в структуры не требуется и она может быть создана и изменена динамически по мере необходимости. Легко пишется код общего характера, где, например, вы подаёте и извлекаете из единственного стека объекты разнообразного рода данных. Создание гибкого списка, который содержит разнообразные объекты данных, тривиально в Euphoria, но требует десятков строк уродливого кода в других языках. Манипуляции с данными весьма эффективны, так как интерпретатор Euphoria не копирует большие объекты, а указывает на уже существующий экземпляр. Программирование на Euphoria полностью основано на создании и преобразовании гибких динамических рядов данных. Всё это ряды - здесь нет других структур данных для изучения. Вы оперируете в простом, безопасном, податливом мире величин, который находится далеко от жёсткого, утомительного, опасного мира битов, байтов, пойнтеров и машинных крахов. В отличие от других языков, таких как LISP и Smalltalk, Euphoria выполняет "приборку" неиспользуемой памяти в непрерывном процессе, который никогда не вызывает случайных задержек в исполнении программы и не требует предварительного резервирования огромных участков памяти. Определения обычных языков, таких как C, C++, Ada и т.д., очень сложны. Большинство программистов осваивает только некоторое подмножество возможностей языка. Стандарты ANSI на эти языки читаются как сложные своды законов. Вас вынуждают писать разный код для разных типов данных, даже чтобы просто скопировать данные, получить текущую длину, сцепить их, сравнить их и т.д. Руководства по этим языкам переполнены функциями, такими как "strcpy", "strncpy", "memcpy", "strcat", "strlen", "strcmp", "memcmp", и т.п., каждая из которых работает только с одним из многих типов данных. Слишком много сложностей вокруг вопроса о типах данных. Как определить новые типы? Какие типы данных могут быть смешанными? Как преобразовать один тип в другой, да ещё чтобы компилятор остался счастливым? Когда вам нужно что-то, требующее гибкости во время исполнения программы, вы часто находите себя за занятием, которое очень смахивает на попытки надувательства компилятора. В этих языках численная величина 4 (к примеру) может иметь различный смысл в зависимости от того, что это за тип: int, char, short, double, int* и т.д. В Euphoria 4 - это атом 4, точка! В Euphoria есть кое-что, также названное типом, но это намного более простая концепция, как мы увидим чуть позже. Вопросы динамического выделения и освобождения памяти занимают изрядный кусок времени на программирование и отладку в этих других языках, и делают результирующую программу значительно более трудной для понимания. Программы, предназначенные для продолжительного непрерывного исполнения, часто страдают "утечкой" памяти, избавление от которой требует высочайшей дисциплины безопасного и правильного освобождения блоков памяти, надобность в которых отпала. Euphoria автоматически следит за выделением и высвобождением памяти. В других языках широко используются переменные-указатели (пойнтеры). Пойнтеры следовало бы назвать "goto" для структур данных. Они заставляют программиста думать о данных как о закреплённых в памяти огороженных участках, на которых производятся разного рода низкоуровневые, непереносимые на другие платформы трюки. Картина медных кишочек машины, на которой будет исполняться программа, то и дело всплывает в воображении программиста. В Euphoria нет пойнтеров и она не нуждается в них. " Официальный сайт и форум OpenEuphoria:http://openeuphoria.org В данной теме прошу выкладывать свои соображения, примеры кода, сравнения и т.д, касаемые данного языка. Прошу тех, кто когда-либо использовал Eu высказывать своё мнение и демонстрировать свои наработки.
1
|
|
| 02.09.2015, 17:34 | |
|
Ответы с готовыми решениями:
44
Перечислите все плюсы и минусы языков программирования Perl и PHP Плюсы и минусы Плюсы и минусы C# |
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 117
|
|
| 26.09.2019, 20:48 | |
|
Ещё новость от Kinz
http://pl-euphoria.narod.ru/gb ------------------------------------------ 966. Игорь [kyzyl-tash] (20.09.2019 15:36) Всем когда-то интересовавшимся рад сообщить, что с согласия Роберта Крейга я выложил здесь полный исходный код (C и Eu) двуязычной версии интерпретаторов EU2.5. http://pl-euphoria.narod.ru/main_gb.htm Эти интерпретаторы входят в пакет двуязычной EU, который можно скачать в разделе Расширения языка Архива RDS. http://www.rapideuphoria.com/ru_eu_11.zip
0
|
|
|
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
|
||||||
| 16.11.2020, 14:00 | ||||||
|
К сожалению после передачи языка сообществу, то несколько разбежалось, а русскоязычного, кроме Игоря Качана (очень благодарен ему за перевод документации, благодаря ему я и подсел на ейфорию, но ни как не смог зарегистрироваться у него на сайте) вообще в сети нет. Шиан к сожалению тоже прикрыл свой форум и новый дизайн сайта стал неудобный.
По языку, вот пример использования библиотеки win32lib (использует чистый WinAPI):
0
|
||||||
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 117
|
|
| 16.11.2020, 15:04 | |
|
У Игоря (Kinz) на pl-euphoria и не было никогда регистрации.
http://pl-euphoria.narod.ru/gb просто гостевая.
0
|
|
|
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
|
||||||
| 17.11.2020, 10:07 | ||||||
|
Сорри, перепутал, там нажимаешь Добавить запись и крутиться, крутиться ....
Кстати столкнулся с непонятной ерундой, взял из документации пример:
0
|
||||||
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 117
|
|
| 17.11.2020, 11:07 | |
|
Какая Система, какая Euphoria?
0
|
|
|
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
|
|
| 25.11.2020, 10:34 | |
|
XP, 4.1
0
|
|
|
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
|
|
| 09.02.2021, 14:00 | |
|
Ради интереса перенес эту программку на RDS Euphoria 3.1 и Phix 0.8.3, результат такой же.
Кстати в описании не написано, когда Крейг перестал поддерживать RDS Euphoria 3.1 - на ее идее были реализованы OpenEuphoria, которую развивает сообщество (последний релиз в 2015 году) - и Phix который делает один человек http://phix.x10.mx/download.php (последний релиз 2 февраля 2021г). В отличии от ОЕ, Phix написан на ассемблере и поддерживает классы. Кину сюда перевод с сайта: Phix имеет несколько преимуществ перед другими языками программирования: Замечательно простое, но гибкое и мощное определение языка, которое легко выучить и использовать. Высокопроизводительный интерпретатор / компилятор намного быстрее, чем большинство других. Полностью управляемое динамическое хранилище данных без необходимости выделять или освобождать память. Переменные могут увеличиваться или уменьшаться до любого размера без какой-либо ручной обработки. Обширная проверка во время выполнения на наличие индексов, выходящих за границы, неинициализированных переменных, неверных назначений параметров и переменных и многого другого. Нет никаких загадочных машинных исключений - вы всегда получаете полное описание на английском языке любой проблемы, которая возникает в вашей программе во время выполнения, с точной исходной строкой, в которой она возникает, а также полный список стека вызовов и дамп всего значений ваших переменных. Программы можно отлаживать быстро, легко и более тщательно. Отладчик уровня исходного кода позволяет выполнять программы построчно. Трассировка может начинаться (или заканчиваться) в любой строке или при любом условии под полным контролем программиста. Встроенный профилировщик выполнения определяет, какие строки кода занимают наибольший процент времени выполнения или выполняются наиболее часто. Характеристики основного оборудования обычно скрыты. Программы обычно не осведомлены о длине слова, битовых представлениях, порядке байтов и т. Д. Тем не менее, Фикс удовлетворяет и любого, у кого более глубокое любопытство. Между языком и операционной системой нет скрытой стены, чтобы полностью понять, как все работает на самом деле. Phix может создавать файлы низкоуровневых списков, которые показывают точные адреса и сгенерированные инструкции по сборке, а также включает программу (filedump.exw), которая показывает каждый бит и байт во всех деталях (в пределах разумного, например, отображаются значки и другие подобные данные. в необработанном шестнадцатеричном формате), для файлов Windows PE, Linux ELF и других форматов. Самостоятельное размещение, поэтому нет необходимости знать другой язык или приобретать какие-либо другие инструменты разработки для улучшения или исправления самого языка. Вы можете легко загрузить, установить и перекомпилировать Phix менее чем за две минуты! (См. Короткую веб-трансляцию по адресу http://phix.x10.mx/tutorial.php , а также Рекомендуемые инструменты .) Редактор программистов Edita находится в свободном доступе и написан на Phix со всем, что вы могли ожидать, включая множественную и определяемую пользователем окраску синтаксиса, многоязычную поддержку, intellisense, автозаполнение, сворачивание кода, интегрированную справку, средство рисования окон, полный исходный код и многое другое. Автономные исполняемые файлы могут быть созданы просто путем добавления флага «-c» к обычной команде интерпретации (или с помощью Ctrl F5 при использовании Edita). (Подробный листинг сборки, упомянутый выше, также представляет собой просто "-d".) Нет никаких сложных опций компилятора, которые нужно запомнить, и нет отдельной фазы компоновки. Простая директива форматирования в исходном коде позволяет легко выполнять кросс-компиляцию в любую другую поддерживаемую систему. Программы Phix, естественно, носят общий характер. В примере программы показана единственная процедура, которая сортирует данные любого типа - целые числа, числа с плавающей запятой, строки и т. Д. Phix достигает многих преимуществ объектно-ориентированного программирования, но гораздо более простым способом.
0
|
|
|
|
|
| 09.02.2021, 15:53 [ТС] | |
|
Бейсик с классами уже не бейсик, эйфория с классами уже не эйфория.
0
|
|
|
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
|
|
| 09.02.2021, 17:00 | |
|
Ну у Phix еще и окутывания нет, только интерпретация и компиляция. А так синтаксис не сильно отличается, отладчик такой же, да и общая концепция не изменилась.
0
|
|
|
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
|
|
| 10.02.2021, 08:45 | |
|
Еще у Euphoria есть Система управления базами данных EDS.
Структура базы данных EDS В EDS база данных - это единственный файл с расширением имени .edb. База данных EDS состоит из 0 или более таблиц. Каждая таблица имеет имя и содержит 0 или более записей. Каждая запись состоит из области ключа и области данных. Ключ может быть любым объектом Euphoria - атомом, рядом, глубоко вложенным рядом, если хотите. Сходным образом, данные могут быть также любым объектом Euphoria. На размер и структуру ключа и данных не налагается никаких ограничений. Внутри данной таблицы все ключи уникальны. Это означает, что в одной таблице невозможны две записи с одним и тем же ключом. Записи в таблице размещены по возрастанию величин ключей. Когда вы обращаетесь к записи по ключу, применяется эффективный бинарный поиск. Возможен и прямой доступ к записям, без поиска, если вы знаете текущий номер записи в таблице. Записи имеют целочисленные номера от 1 до длины таблицы (текущего числа записей). Увеличивая номер записи, вы можете эффективно пройти все записи в порядке ключей. Однако имейте в виду, что номер записи может измениться при внесении новой записи или при удалении существующей записи. Области ключа и данных хранятся на диске в компактной форме, но точность чисел с плавающей точкой или любых других данных Euphoria при записи-считывании не теряется. Библиотека, содержащая EDS, database.e, без изменений будет работать под Windows, DOS, Linux или FreeBSD. Файлы баз данных EDS могут быть скопированы и использованы программами, исполняемыми под Linux/FreeBSD и DOS/Windows. Убедитесь, что при копировании файлов применяется двоичный режим, байт в байт, а не текстовый или "ASCII", при которых не исключены системные манипуляции символами конца строки. Пример: база_данных: "мои_данные.edb" первая таблица: "пароли" запись #1: ключ: "джонс" данные: "euphor123" запись #2: ключ: "смит " данные: "billgates" вторая таблица: "инструменты" запись #1: ключ: 134525 данные: {"молоток", 15.95, 500} запись #2: ключ: 134526 данные: {"пила", 25.95, 100} запись #3: ключ: 134530 данные: {"отвёртка", 5.50, 1500} Это полностью ваше дело, как интерпретировать значения ключей и данных. В соответствии с духом Euphoria у вас в распоряжении тотальная гибкость. В отличие от большинства других систем управления базами данных, записи в EDS не требуют фиксированного числа полей либо предустановленной максимальной длины полей. Во многих случаях бывает трудно подыскать какие-либо смысловые естественные величины для значений ключей в ваших записях. Тогда рекомендуется выбрать в качестве ключей просто уникальные целочисленные номера. Не забывайте, что вы всегда можете получить доступ к своим данным по номеру записи. Очень легко организовать циклический просмотр записей по их номерам для поиска специфического значения поля. Энтузиасты к ней написали SQL оболочку. p.s. Про классы, я пишу костыли, программы облегчающие работу или увеличивающие функционал других программ, они обычно имеют не больше 500 строчек и мне ни разу не потребовались классы, вполне хватало стандартных типов Euphoria. Блиин, да я вообще отсталый человек, первый и единственных раз писал классы в конце 90, писал курсовик на Borland Pascal графический калькулятор под Дос графику делал.
0
|
|
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 117
|
|
| 10.02.2022, 11:44 | |
|
Завтра 20 лет со дня выхода EU 2.3
Учитывая, что для установки нужна система с поддержкой dos, поднял XP в виртуалке. К моему удивлению (на первый взгляд) в 10-ке всё виндовое по прежнему работает. И самое весёлое на упакованные UPX ещё автором exw и PE и CE На virustotal вообще никто не возбуждается. ))) Это кому то интересно? p.s. в 3.11 если бакэнд распаковать из UPX то тоже на virustotal все молчат.
0
|
|
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 117
|
|
| 10.02.2024, 09:08 | |
|
Experimental builds for Euphoria 4.2
https://openeuphoria.org/forum... _id=138233
0
|
|
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 117
|
|
| 02.08.2024, 08:25 | |
|
RapidEuphoria в вебархиве
https://web.archive.org/web/20... index.html
1
|
|
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 117
|
|
| 05.01.2025, 08:21 | |
|
1
|
|
|
|
|
| 05.01.2025, 15:02 [ТС] | |
|
Интересно кто это реанимировал старый сайт?
0
|
|
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 117
|
|
| 05.01.2025, 20:11 | |
|
Конкретно этот похоже тот же израильтянин кому принадлежал домен euphoria311.com
Просто перебрался на бесплатную площадку. Но всё ещё активен https://pl-euphoria.narod.ru/ где есть и русский перевод. Добавлено через 2 часа 4 минуты Вспомнил его имя Shian Lee
1
|
|
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 117
|
|
| 09.01.2025, 09:06 | |
|
rapideuphoria.com is back online! (again) (c) ghaberek ( https://github.com/ghaberek )
https://www.rapideuphoria.com/russian/index_r.htm p.s. как в старые добрые времена с работающим поиском в архиве.
0
|
|
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 117
|
|
| 19.03.2025, 13:21 | |
|
Euphoria 4.2.0 Development Id 22b5124 Pre-release
https://github.com/jm-duro/eup... ag/22b5124
0
|
|
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 117
|
|
| 26.12.2025, 06:50 | |
|
Ещё один по прежнему живой ресурс на тему Euphoria
https://esl.sourceforge.net/index.htm
0
|
|
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 117
|
|
| 01.01.2026, 10:36 | |
|
В этом году будет 20 лет с момента заявления Роберта Крейга
19 сентября 2006 года: Euphoria скоро станет полностью бесплатной программой с открытым исходным кодом! Всё верно — программа будет полностью бесплатной, а весь исходный код и коммерческая тайна станут общественным достоянием. Пользуйтесь на здоровье. Но не пытайтесь подать в суд на нас или кого-то ещё, если программа работает не так, как вы ожидали, или каким-то образом причиняет вам вред, раздражает вашу жену или внезапно вызывает у вашей собаки недомогание! :-) Вы даже можете продать его с выгодой для себя, но кто купит его у вас, если он и так бесплатный? :-) .
0
|
|
| 01.01.2026, 10:36 | |
|
Плюсы и минусы Плюсы и минусы кроссфита Процессор I7 плюсы та минусы Плюсы и минусы J2se Поддомены. Плюсы и минусы. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|