OberonCore
https://forum.oberoncore.ru/

Euphoria - "Есть ишшо такая Ява.."
https://forum.oberoncore.ru/viewtopic.php?f=26&t=781
Страница 1 из 1

Автор:  Клоп Говорун [ Пятница, 14 Декабрь, 2007 04:42 ]
Заголовок сообщения:  Euphoria - "Есть ишшо такая Ява.."

Есть еще такое - Euphoria,
язык позиционируемый под множество платформ : Linux-ы,FreeBSD,Windows-ы,DOS-ы
компилятор e2c и еще много чего, прост до безобразия узучается за день-современный
QBasic. Однако хвастаются производительностью, есть GUI какое-никакое. Вот типы данных у него мне понравились, эстетически приятно видеть такое -sequence. гы..
Люблю писать под дос всякую всячину поетому взял на вооружение :)
http://www.rapideuphoria.com/ есть там и русское зеркало...
________________________________________________________________________
Чубайс-наша грозная слава :)

Автор:  Vlad [ Пятница, 14 Декабрь, 2007 08:49 ]
Заголовок сообщения:  Re: Есть ишшо такая Ява..

cbsc писал(а):
Есть еще такое - Euphoria


Судя по описанию это больше похоже на перл, чем на яву. Только в перле "все есть хеш-массив", а тут "все есть список". Ничего интересного. Или есть что-то уникальное?

Автор:  Илья Ермаков [ Пятница, 14 Декабрь, 2007 09:11 ]
Заголовок сообщения:  Re: Есть ишшо такая Ява..

А вот как это выглядит - вроде ничего, особо деструктивного для психиики, нет, хотя на страничке пугали сравнением с Басиком...
Однако, если тянет на интерпретируемое с сиквенсами всякими, то уж Питон - более распространённый язык...
Хотя этот вроде статически типизирован, что в лишний +...

Код:
 sequence list, sorted_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 list
     list = {9, 10, 3, 1, 4, 5, 8, 7, 6, 2}
     sorted_list = merge_sort(list)
     ? sorted_list
 end procedure

 print_sorted_list()     -- this command starts the program

Автор:  Vlad [ Пятница, 14 Декабрь, 2007 10:20 ]
Заголовок сообщения:  Re: Есть ишшо такая Ява..

Илья Ермаков писал(а):
Хотя этот вроде статически типизирован, что в лишний +...


В каком месте он статически типизирован? Базовые типы можно указывать? :) А чуть более сложные структуры сразу превращаются в динамический список :) Питон в этом смысле более последователен, все динамическое, но при этом полноценные структуры данных.

Автор:  Илья Ермаков [ Пятница, 14 Декабрь, 2007 14:44 ]
Заголовок сообщения:  Re: Euphoria - "Есть ишшо такая Ява.."

Согласен, уж лучше последовательность - либо строгая статическая (с RTTI), либо полная динамическая (но строгая - Smalltalk, Python). А JavaScript масдай :-)

Автор:  Клоп Говорун [ Пятница, 14 Декабрь, 2007 19:43 ]
Заголовок сообщения:  Re: Euphoria - "Есть ишшо такая Ява.."

Ну да конечно так все и есть.Язык со слабой статической типизацией переменные объявляются но есть еще и Object :)
Русское зеркало http://www.private.peterlink.ru/kinz/2002/indexe.htm
Списки эти вообще общее место, в J например это boxes , вообщем помоему тут собрали много чего интересного
из разных концепций,sequence-это хорошо (где ето в JavaScript) но спору нет это не Lisp и не APL ориентированные
на обработку подобных конструкций...Собственно чего это я тут развел , аааа.... просто по ассоциации. Заранее скажу
что ассоциация совершенно поверхностная конечно.
1.Сборщик мусора есть-есть :)
2.Многоплатформенность есть-есть :)
3.Низкоуровневые операции выделены в отдельный модуль Machine Level Interface machine.e
4. Модули с поддержкой синтаксиса ModuleName.NameName
5.Такое вот есть

type hour(integer x)
return x >= 0 and x <= 23
end type
что-то ето мне напоминает. :)

Но не это главное!
СЕАНС ЧЕРНОЙ МАГИИ А-ЛЯ др. Никлаус Вирт
Есть такая Feature :
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dynamic Calls
These routines let you call Euphoria procedures and functions using a unique integer known as a routine identifier, rather than by specifying the name of the routine.
routine_id - get a unique identifying number for a Euphoria routine
call_proc - call a Euphoria procedure using a routine id
call_func - call a Euphoria function using a routine id
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Вслед за уважаемым Виртом делаем заключение , -этого (вобщем наличия глобальной таблицы функций) вполне достаточно для того чтобы :
Процедурный язык -превращается....преврящается... в ОО-язык. примером тому
библиотека Quartz :) :) и не надо никакого class.

Прошу не запинывать ногами. Гм.. а воспринимать сей пост исключительно как шутку.
Дааа... Oberon это конечно грозная слава...Оставляет после себя ощущение очень ГРАМОТНОЙ конструкции
что-б там не говорили.Немцы-однако :)
Вот вопрос много ли пишут на нем..изучение то идет,а вот не получилось ли бы как с J у меня. Внедрить то у себя в конторе я его внедрил и все довольны. А не дай бог работу сменить прийдется.
Вы что на ето скажете товарищъ? :)

Автор:  Илья Ермаков [ Пятница, 14 Декабрь, 2007 20:32 ]
Заголовок сообщения:  Re: Euphoria - "Есть ишшо такая Ява.."

cbsc писал(а):
Внедрить то у себя в конторе я его внедрил и все довольны. А не дай бог работу сменить прийдется.
Вы что на ето скажете товарищъ? :)

Ну так будет поле для новых социальных экспериментов по внедрению в новом коллективе :-) :-) :-)

Автор:  Клоп Говорун [ Пятница, 14 Декабрь, 2007 21:08 ]
Заголовок сообщения:  Re: Euphoria - "Есть ишшо такая Ява.."

Собственно вопрос по существу: имеет ли место быть подобная "эмуляция" OOП
т.е. наличия в языке некоторых воможностей позволяющих вводить в язык синтаксис OOП через
черный ход. Не напоминает ли ето Виртовский подход. Т.е. ООП как концепция удобным образом поддерживаемая языком, а не жесткий набор тегов Class {} и т.п.
Я не имею ввиду вышеупомянутый пример. Не будет ли полезно самостоятельно модифицировать базовые конструкции поддержки ООП если это будет сравнительно легко сделать. Понятно что OO-стиль программирования использовался и до его изобретения :) я не об этом. Кстати в той же Euphoria обнаруживается еще и такое O4 т.е. пишешь как на Ява и переводишь все енто в процедурный код,ООП вне языка.
Каким должен быть язык что-бы максимально удовлетворять подобным запросам...
Глупо наверное..... :(

Автор:  Илья Ермаков [ Пятница, 14 Декабрь, 2007 21:20 ]
Заголовок сообщения:  Re: Euphoria - "Есть ишшо такая Ява.."

"Эмуляция ООП" в конечном счёте и оказывается "настоящим ООП". Потому что ООП - это набор конкретных механизмов: абстрактная типизация (сокрытие устройства типа данных) (в Обероне и до него в Модуле - на базе модулей), расширение типов данных, полиморфизм параметров процедур и указателей, виртуализация вызова.
Эти механизмы надо видеть и понимать по раздельности, и по раздельности же, дозированно употреблять.

Автор:  Клоп Говорун [ Пятница, 14 Декабрь, 2007 21:37 ]
Заголовок сообщения:  Re: Euphoria - "Есть ишшо такая Ява.."

Последний вопрос. Прочитав манифест банды четырех и сравнив с той же документацией
по BlackBox - мы в восхищении, на примере той же подсистемы Text. Сравнив с тем как все ето реализуется в Delphi например :)
Но вот одна весчь - перекрытие операторов ,гм... как? Идет вразрез с принципами надежного программирования?

Автор:  Илья Ермаков [ Пятница, 14 Декабрь, 2007 22:49 ]
Заголовок сообщения:  Re: Euphoria - "Есть ишшо такая Ява.."

cbsc писал(а):
Но вот одна весчь - перекрытие операторов ,гм... как? Идет вразрез с принципами надежного программирования?


Перегрузка операций, в смысле?
Просто это средство с очень трудно просчитываемыми побочными последствиями для языка и компилятора. Тянет за собой много всего. Известно на примере Ады. Например, явное префиксование модуля - Вы же не будете писать a ComplexNum."+" b. Придётся вводить неявное "прописывание" операций при импорте. А это ведёт ещё к цепным последствиям (как разруливать, если "прописалось" несколько подходящих и т.п.). Ну и т.п. Итого - проблем имеем больше, чем получаем преимуществ. Дисбаланс языка.

Сегодня читал "Вокруг света" - про системы радиосвязи с космическими аппратами. Там говорилось о том, что спутник или косм. аппарат настолько сбалансированная вещь, что нельзя тронуть ни один параметр, чтобы не "поплыли" другие. Увеличили скорость передачи данных - надо для надёжности увеличить мощность передатчика - требуется более мощное питание - "поплыла" масса + габариты и т.п. В итоге пересчитывается и "раздувается" всё. Так и с языком программирования. Оберон - это вот такой идеально сбалансированный спутник, который при введении каждого средства приходится "пересчитывать".

Автор:  Geniepro [ Суббота, 15 Декабрь, 2007 01:32 ]
Заголовок сообщения:  Re: Euphoria - "Есть ишшо такая Ява.."

Илья Ермаков писал(а):
Оберон - это вот такой идеально сбалансированный спутник, который при введении каждого средства приходится "пересчитывать".
:о)))
Тем не менее, идеальных языков нет...

Кстати, В Оберон-Компаньон в ETH-Oberon ведь была перегрузка операций, и ничего страшного вроде не случилось... :о)

Автор:  Клоп Говорун [ Суббота, 15 Декабрь, 2007 02:12 ]
Заголовок сообщения:  Re: Euphoria - "Есть ишшо такая Ява.."

Варуююююттттт :) :)

Has anyone here looked at Juice?

http://caesar.ics.uci.edu/juice/

The C++ sources of the netscape & IE plugin are available, and the
authoring tool sources which are in Oberon which bears a vague
similarity to Pascal.

I wonder if there is anything in that dll which could usefully be
wrapped for Euphoria?

Pete

Автор:  CheshireCat [ Среда, 16 Январь, 2008 12:09 ]
Заголовок сообщения:  Re: Euphoria - "Есть ишшо такая Ява.."

да еще много чего в природе похожего есть, например LUA...

Автор:  slava [ Среда, 16 Январь, 2008 12:20 ]
Заголовок сообщения:  Re: Euphoria - "Есть ишшо такая Ява.."

CheshireCat писал(а):
да еще много чего в природе похожего есть, например LUA...
Глянул на LUA: с синтаксис простой, но язык мощный. Чем то на Oberon смахивает.

Автор:  Александр Ильин [ Среда, 16 Январь, 2008 12:38 ]
Заголовок сообщения:  Re: Euphoria - "Есть ишшо такая Ява.."

CheshireCat писал(а):
да еще много чего в природе похожего есть, например LUA...

http://www.lua.org/about.html#name писал(а):
Please do not write it as "LUA", which is both ugly and confusing, because then it becomes an acronym with different meanings for different people. So, please, write "Lua" right!

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/