|
|
|
Euphoria - плюсы и минусы02.09.2015, 17:34. Показов 18615. Ответов 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
Сообщений: 124
|
|
| 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
Сообщений: 124
|
|
| 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
Сообщений: 124
|
|
| 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
Сообщений: 124
|
|
| 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
Сообщений: 124
|
|
| 10.02.2024, 09:08 | |
|
Experimental builds for Euphoria 4.2
https://openeuphoria.org/forum... _id=138233
0
|
|
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 124
|
|
| 02.08.2024, 08:25 | |
|
RapidEuphoria в вебархиве
https://web.archive.org/web/20... index.html
1
|
|
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 124
|
|
| 05.01.2025, 08:21 | |
|
1
|
|
|
|
|
| 05.01.2025, 15:02 [ТС] | |
|
Интересно кто это реанимировал старый сайт?
0
|
|
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 124
|
|
| 05.01.2025, 20:11 | |
|
Конкретно этот похоже тот же израильтянин кому принадлежал домен euphoria311.com
Просто перебрался на бесплатную площадку. Но всё ещё активен https://pl-euphoria.narod.ru/ где есть и русский перевод. Добавлено через 2 часа 4 минуты Вспомнил его имя Shian Lee
1
|
|
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 124
|
|
| 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
Сообщений: 124
|
|
| 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
Сообщений: 124
|
|
| 26.12.2025, 06:50 | |
|
Ещё один по прежнему живой ресурс на тему Euphoria
https://esl.sourceforge.net/index.htm
0
|
|
|
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 124
|
|
| 01.01.2026, 10:36 | |
|
В этом году будет 20 лет с момента заявления Роберта Крейга
19 сентября 2006 года: Euphoria скоро станет полностью бесплатной программой с открытым исходным кодом! Всё верно — программа будет полностью бесплатной, а весь исходный код и коммерческая тайна станут общественным достоянием. Пользуйтесь на здоровье. Но не пытайтесь подать в суд на нас или кого-то ещё, если программа работает не так, как вы ожидали, или каким-то образом причиняет вам вред, раздражает вашу жену или внезапно вызывает у вашей собаки недомогание! :-) Вы даже можете продать его с выгодой для себя, но кто купит его у вас, если он и так бесплатный? :-) .
0
|
|
| 01.01.2026, 10:36 | |
|
Плюсы и минусы Плюсы и минусы кроссфита Процессор I7 плюсы та минусы Плюсы и минусы J2se Поддомены. Плюсы и минусы. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|