Oberon space

General Category => Общий раздел => Тема начата: DddIzer от Апрель 22, 2013, 11:33:50 am

Название: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 22, 2013, 11:33:50 am
На выходных наткнулся на сие чудо. И впечатления  довольно противоречивые... Простая система типов  - всего 2 базовых:
1.аtom - простой (неделимый) -  включающий в себя целые и действительные числа (переходы между ними автоматические)
2. sequence -составной - иерархическая последовательность (возможно пустая) , представляет собой   произвольную комбинацию элементов атомарного типа и последовательностей.
и 2 специальных пример: {1, 4.5, {2, 'h'},"Hello"}
1. integer - 31 битовое знаковое целое
2. object -  обобщенный тип - его значениями могут быть как последовательности так и атомы.
Типизация динамическая строгая.  Выделенного логического типа нет  - используется сишная интерпретация:
логические операции возвращают 0 или 1.. операции сравнения трактуют 0 как ложь , все остальное - как истину.
Строка трактуется как последовательность символов  ("Hello"  эквивалентно {'H','e','l','l','o'})
Есть разделение на процедуры и функции. Многозадачность на уровне языка.
Eсть возможность создания пользовательского типа (по факту представляет функцию возвращающую целое число -  если 0 то рассматриваемое значение не принадлежит этому типу). Модулей нет - есть пространства имен и модификаторы видимости переменных и функций. Есть goto и  label'c  :) тяжелое наследие бэйсиковского прошлого. Указателей нет (на уровне сущностей языка). Громадная стандартная  библиотека (Руби и Луа отдыхают).  OOП - в чистом виде отсутствует (эмулируется как в Луа).
Есть автогенерация документации и модульное тестирование.... Есть 64 и 32 битные реализации под основные платформы...
в бета тестировании  реализация под армы...
Четыре возможных способа распространения программ:
1. исходник
2. IL  код (запускается интерпретатором на хост -машине )
3. IL код с присоединенным интерпретатором (в ввиде exe)
4. Возможна трансляция и автоматическая сборка и компиляция gnu - шным СИ.
Быстродействие интерпретируемого кода - в несколько раз превосходит Питонный и Луашный (на (цело)численных задачах  :D). Ну про откомпилированный код говорить смысла нет...
Визуально текст программ  производи (ИМХО) хорошее впечатление - пример (быстрая сорировка):

include std / console .e
 sequence original_list

 function merge_sort ( sequence x)
 -- put x into ascending order using a recursive merge sort
 integer n, mid
 sequence merged , a, b

 n = length (x)
 if n = 0 or n = 1 then
 return x -- trivial case
 end if

 mid = floor (n/2)
 a = merge_sort (x [1.. mid ]) -- sort first half of x
 b = merge_sort (x[mid +1.. n]) -- sort second half of x

 -- merge the two sorted halves into one
 merged = {}
 while length (a) > 0 and length (b) > 0 do
 if compare (a[1] , b [1]) < 0 then
 merged = append ( merged , a [1])
 a = a [2.. length (a)]
 else
 merged = append ( merged , b [1])
 b = b [2.. length (b)]
 end if
 end while
 return merged & a & b -- merged data plus leftovers
 end function

 procedure print_sorted_list ()
 -- generate sorted_list from original_list
 sequence sorted_list

 original_list = {19 , 10, 23, 41, 84, 55, 98, 67, 76, 32}
 sorted_list = merge_sort ( original_list )
 for i = 1 to length ( sorted_list ) do
 display (" Number [] was at position [:2] , now at [:2] ",
 { sorted_list [i], find ( sorted_list [i], original_list ), i}
 )
 end for
 end procedure

 print_sorted_list () -- this command starts the program
Кто желает высказаться по сабжу.. Кстати Борис.. не рассматривали как замену Луа?
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 22, 2013, 11:41:57 am
Сорри, конечно же это не быстрая сортировка  :D
Название: Re: Эйфория (ЯП)
Отправлено: valexey_u от Апрель 22, 2013, 11:43:24 am
Сорри, конечно же это не быстрая сортировка  :D
А с отступами в коде там специально так все плохо?
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 22, 2013, 11:48:27 am
Сорри, конечно же это не быстрая сортировка  :D
А с отступами в коде там специально так все плохо?

Питоновских ограничений (а так же разделителей операторов вроде ';') - НЕТ. Что касается примера.. то я просто скопировал его из PDF ника документации...  Кстати, документация.. одна из лучших которые я когда либо видел....
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 22, 2013, 12:25:20 pm
В порядке пищи для размышления.. Эйфория была создана Робертом Крейгом в 1993 (почти как ББ) , также как и в случае с ББ
задумывалось это дело как коммерческий проект. В двухтысячных он так же как и ББ перешел в Открытое сообщество. Как и  в случае с ББ пользователей у него с  гулькин нос... но посмотрите на тенденцию развития... и качество продукта... функциональность... - это СОВСЕМ не ББ  :-\
Название: Re: Эйфория (ЯП)
Отправлено: valexey_u от Апрель 22, 2013, 12:56:11 pm
Сорри, конечно же это не быстрая сортировка  :D
А с отступами в коде там специально так все плохо?

Питоновских ограничений (а так же разделителей операторов вроде ';') - НЕТ. Что касается примера.. то я просто скопировал его из PDF ника документации...  Кстати, документация.. одна из лучших которые я когда либо видел....
Ну, это все понятно. Просто странно кидать не отформатированный нормально кусок кода, и говорить: смотрите как оно приятно читается!
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 22, 2013, 12:59:03 pm

Ну, это все понятно. Просто странно кидать не отформатированный нормально кусок кода, и говорить: смотрите как оно приятно читается!
я это сделал специально!
Название: Re: Эйфория (ЯП)
Отправлено: Geniepro от Апрель 22, 2013, 01:02:26 pm
Имеется в виду это -- http://ru.wikipedia.org/wiki/Euphoria_(язык_программирования) (http://ru.wikipedia.org/wiki/Euphoria_(язык_программирования)) ?
Непонятно, зачем он нужен в современное время...
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 22, 2013, 01:02:48 pm
(с хорошим форматированием , выделением и подсветкой  можно и Схему нормально читать)
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 22, 2013, 01:05:35 pm
Имеется в виду это -- http://ru.wikipedia.org/wiki/Euphoria_(язык_программирования) (http://ru.wikipedia.org/wiki/Euphoria_(язык_программирования)) ?
Непонятно, зачем он нужен в современное время...
полагаю, что за тем же  что и Луа.. Руби.. Питон... + достойная замена Бэйсику...
т.е. - скриптование и прототипирование
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 22, 2013, 01:42:53 pm
т.е. для обучения (в тех учебных заведениях где его используют). Меня на сайте повеселили комменты в стиле "я обучался программированию на Бэйсике, но  без особых  успехов, но все изменилось когда я перешел на Эйфорию"  :D
Название: Re: Эйфория (ЯП)
Отправлено: Valery Solovey от Апрель 22, 2013, 01:54:13 pm
То есть, у него всё сложилось с бейсиком, когда он перешел на эйфорию?
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 22, 2013, 01:59:12 pm
То есть, у него всё сложилось с бейсиком, когда он перешел на эйфорию?
:D э нет у него все сложилось с ПРОГРАММИРОВАНИЕМ...
Название: Re: Эйфория (ЯП)
Отправлено: Valery от Апрель 23, 2013, 07:34:52 am
На выходных наткнулся на сие чудо. И впечатления  довольно противоречивые... Простая система типов  - всего 2 базовых:
1.аtom - простой (неделимый) -  включающий в себя целые и действительные числа (переходы между ними автоматические)
2. sequence -составной - иерархическая последовательность (возможно пустая) , представляет собой   произвольную комбинацию элементов атомарного типа и последовательностей.
Lisp: atom и список
Название: Re: Эйфория (ЯП)
Отправлено: Geniepro от Апрель 23, 2013, 09:47:18 am
Ещё и Рефал сюда годится...
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 23, 2013, 10:26:13 am
На выходных наткнулся на сие чудо. И впечатления  довольно противоречивые... Простая система типов  - всего 2 базовых:
1.аtom - простой (неделимый) -  включающий в себя целые и действительные числа (переходы между ними автоматические)
2. sequence -составной - иерархическая последовательность (возможно пустая) , представляет собой   произвольную комбинацию элементов атомарного типа и последовательностей.
Lisp: atom и список
Согласен :D...  порешал на Эйфории учебные задачки - впечатления очень приятные. Понятно что реальному продвижению этого языка в  России для нужд обучения будет мешать отсутствие инфраструктуры (иде и методических материалов). Что касается использования его для скриптования.. то ей богу , если бы с год назад он попался на глаза.. то я бы его использовал вместо Lua для скриптования Gulpa - качество документации Эйфории на высоте..
Название: Re: Эйфория (ЯП)
Отправлено: ilovb от Апрель 23, 2013, 11:14:05 am
Кстати Борис.. не рассматривали как замену Луа?
Любопытная штука. Но Lua в ближайшее время мне мало что сможет заменить. Т.к. развитое окружение и популярность Lua перекрывают все недостатки языка с лихвой.
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 23, 2013, 12:05:52 pm

Любопытная штука. Но Lua в ближайшее время мне мало что сможет заменить. Т.к. развитое окружение и популярность Lua перекрывают все недостатки языка с лихвой.
в том то и дело, что мне показалось , что у эйфории окружение по  шире  и качественнее будет, к тому же он быстрее Луа в несколько раз...
Название: Re: Эйфория (ЯП)
Отправлено: ilovb от Апрель 23, 2013, 12:12:56 pm
А где на окружение посмотреть можно? Есть список библиотек и биндов?
И откуда сведения о "быстрее Луа в несколько раз"?
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 23, 2013, 12:24:30 pm
А где на окружение посмотреть можно? Есть список библиотек и биндов?
И откуда сведения о "быстрее Луа в несколько раз"?
прекрасная документация в инсталяции (pdf и html) , бенчмарк -http://openeuphoria.org/wiki/view/EuphoriaBenchmarking.wc (http://openeuphoria.org/wiki/view/EuphoriaBenchmarking.wc) , по поводу биндов .. на сайте, лично
я для себя отметил бинды под wxWidgets и Tegraf
Название: Re: Эйфория (ЯП)
Отправлено: ilovb от Апрель 23, 2013, 12:28:06 pm
Не вижу Lua в бенчмарке :)
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 23, 2013, 12:30:47 pm
Не вижу Lua в бенчмарке :)
нате http://www.rapideuphoria.com/bench.txt (http://www.rapideuphoria.com/bench.txt)  ;)
Название: Re: Эйфория (ЯП)
Отправлено: ilovb от Апрель 23, 2013, 12:46:04 pm
Чет фантастические результаты. Не поверю, пока сам не проверю
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 23, 2013, 12:46:57 pm
Чет фантастические результаты. Не поверю, пока сам не проверю
так вперед  :D :D :D :D
Название: Re: Эйфория (ЯП)
Отправлено: ilovb от Апрель 23, 2013, 12:56:08 pm
Вот тут результаты вменяемые http://dada.perl.it/shootout/sieve.html (этот же тест)

Эта эйфория от си не отстает? O_o
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 23, 2013, 01:14:47 pm
а я откуда знаю... в приведенном вами бенче я  ее не увидел...
Название: Re: Эйфория (ЯП)
Отправлено: ilovb от Апрель 23, 2013, 01:17:29 pm
DIzer, а какой вы редактор используете? Там есть IDE?
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 23, 2013, 04:24:02 pm
DIzer, а какой вы редактор используете? Там есть IDE?
там есть хардкорный редактор (написанный на эйфории)- который запускается с помощью батника ed.bat (в каталоге bin инсталяции).
Мне он очень напомнил vi -  короче.  после запуска вводишь скрипт,  потом нажимаешь esc в верху появляется полоска команд после чего вводишь команду ( например, для запуска интерпретатора  жмешь е (и т.д))... есть подсветка и автокомплит конструкций по мере ввода текста... вообщем  весьма хардкорно...
Название: Re: Эйфория (ЯП)
Отправлено: ilovb от Апрель 23, 2013, 08:10:35 pm
DIzer, вам удалось IUP на нем запустить? Я ниасилил  :-\
Название: Re: Эйфория (ЯП)
Отправлено: DddIzer от Апрель 24, 2013, 09:02:45 pm
DIzer, вам удалось IUP на нем запустить? Я ниасилил  :-\
похоже на то ,что этот бинд для Эйфории 3.3... странно , у вас то же самое? (любая демка выдает ошибку на константe значения по умолчанию  функции  get_color -CENTER_PARENT )
Название: Re: Эйфория (ЯП)
Отправлено: ilovb от Апрель 25, 2013, 05:19:14 am
Именно так