Форум программистов, компьютерный форум, киберфорум
Другие языки программирования
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Squeak 5.0 https://www.cyberforum.ru/ other-lang/ thread1513989.html
Squeak 5 is out! 12 August, 2015
[Forth] Сортировка слиянием Программирование
Подумав-подумав, как на форте написать сортировку слиянием, решил погуглить. Вот такой код нагуглился: \ http://rosettacode.org/wiki/Sorting_algorithms/Merge_sort#Forth \ This is an in-place...
Программирование Возможно ли расшифровать файл?
Есть файл, его нужно расшифровать. Но не дано самого шифра. У знакомого из параллели завёлся вирус, который зашифровал его файлы. Могу и отправить файл... но нужно ли, возможно ли расшифровать этот...
Программирование Язык программирования NIM, установка и запуск У меня ОС ubuntu 15.04 Согласно инструкции на официальном сайте NIM выполнил следующий набор команд: $ git clone https://github.com/Araq/Nim $ cd Nim $ git clone --depth 1... https://www.cyberforum.ru/ other-lang/ thread1505078.html
Программирование [Ada] Когда освобождать память под динамически созданную задачу? https://www.cyberforum.ru/ other-lang/ thread1492716.html
В книжке Гавва (п. 16.1.3) написано, что, если задачу создаём по new, то освобождать память надо самим через Ada.Unchecked_Deallocation . Но когда? Придумал только дожидаться циклическим опросом в...
Программирование Блок-схема
Народ очень прошу помогите нарисовать блок-схему программы, которая написана на скаде, язык структовой Techno ST. Буду очень благодарен. PROGRAM VAR_INPUT СостКр1_закр: BOOL; END_VAR VAR_INOUT...
Программирование [КуМир] Найти в каждой столбце матрице наибольший элемент
Здравствуйте, помогите пожалуйста с этим заданием. Найти в каждой столбце матрице наибольший элемент .
Программирование [КуМир] Одномерные массивы Прошу помочь с данной задачей на одномерные массивы, которую необходимо написать на языке КуМир: Найти сумму всех четных элементов массива Бьюсь над этими массивами второй день, профита никакого. https://www.cyberforum.ru/ other-lang/ thread1485998.html
Программирование [КуМир] Двумерные массивы. Снова https://www.cyberforum.ru/ other-lang/ thread1484884.html
Получить массив В(3), перемножая элементы 1-й строки и 2-го столбца матрицы А(3,3). Напишите полный алгоритм, не могу решить никак. Пытался аналогии провести с другими программами, не выходит. ...
Программирование [Rust] UDP socket error Пытаюсь по udp попробовать передать что-нибудь, но возникает ошибка в err , с чем связано не понимаю, работающего примера не нашёл, ось win7 32 use std::net::UdpSocket; use... https://www.cyberforum.ru/ other-lang/ thread1482154.html
940 / 680 / 225
Регистрация: 30.06.2015
Сообщений: 3,638
Записей в блоге: 37
0

Euphoria - плюсы и минусы

02.09.2015, 17:34. Просмотров 7848. Ответов 29
Метки (Все метки)


Существует такой язык программирования как 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 высказывать своё мнение и демонстрировать свои наработки.

Вернуться к обсуждению:
Euphoria - плюсы и минусы
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2015, 17:34
Готовые ответы и решения:

Перечислите все плюсы и минусы языков программирования Perl и PHP
Что может написать программист на Perl и чего не сможет написать программист на PHP

Плюсы и минусы
В массиве Z(m) найти число чередований знака, то есть число переходов с плюсов на минус или с...

Плюсы и минусы C#
Добрый день! Не хочу ни в коем случае развязывать вечную войну идущей между Delphi и С, но...

Плюсы и минусы
Господа, хочется узнать ваше мнение по такому варианту работы с сервером терминалов. Хочу...

29
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.