Oberon space

General Category => Общий раздел => Тема начата: Wlad от Октябрь 27, 2013, 09:32:55 pm

Название: Что за расклады?
Отправлено: Wlad от Октябрь 27, 2013, 09:32:55 pm
Что за эти годы изменилось?
ЧТо ныне в оберон-сообществе?
Кого уж нет, а кто - далече?
Что за делёжка и революсьон с оберонкором?
Кто какой тематикой на просторах СНГ занимается, используя обероны (в том или ином виде)?

Конкретно меня интересуют приложения оберонов/ады в системах реального времени, системах управления (желательно - авиация и чуть повыше), желательно более с уклоном в сторону "на голом железе".
Интерес обусловлен вопросами сертификации и (опять-таки!) повышения надёжности решений без значительного снижения быстродействия, по сравнению с системами, выполненными на Си и асме.

+ кроме Евгения кто-нибудь Хаскелем здесь ещё занимается?
Евгений, посматривай иногда в личку - есть (или вскорости появятся) вопросы для обсуждения и обмена с тобой мнениями, как с функциональшиком и хаскелистом! :) (с вероятным выносом в широкое обсуждение по взаимному согласию сторон :) )
Название: Re: Что за расклады?
Отправлено: Geniepro от Октябрь 28, 2013, 05:34:27 am
Что за эти годы изменилось?
ЧТо ныне в оберон-сообществе?
Кого уж нет, а кто - далече?
Что за делёжка и революсьон с оберонкором?

Там оберонкор объединяет под своей крышей европейское сообщество Блекбокса/Компонентного Паскаля, вроде хотят развивать его дальше, в связи с закрытием этого проекта у Оминка...


Евгений, посматривай иногда в личку - есть (или вскорости появятся) вопросы для обсуждения и обмена с тобой мнениями, как с функциональшиком и хаскелистом! :) (с вероятным выносом в широкое обсуждение по взаимному согласию сторон :) )

Ок, чем смогу -- помогу ))
Название: Re: Что за расклады?
Отправлено: valexey_u от Октябрь 28, 2013, 12:42:28 pm
Что за эти годы изменилось?
ЧТо ныне в оберон-сообществе?
Кого уж нет, а кто - далече?
Что за делёжка и революсьон с оберонкором?
Ну, Руслан Богатырев скажем забил на обероны, РОСЫ и вообще всякие операционки, и сейчас явно занимается существенно другим.

alexus вначале покинул оберонкор, затем, вначале этого года, после каких-то споров ушел и от нас.

Вообще, наш форум образовался после того, как на оберонкоре модерирование стало совсем уж не адекватным, а администрация форума встала в позу "а куда вы нафиг с подлодки денетесь?". Так что мы соорудили во собственный плот, и подлодка стала уже не особо то и нужна. И было это в феврале 2011 года.

После серии конфликтов на оберонкоре к нам же присоединился Сергей Губанов например. Заходил к нам даже info21, но не выдержав накала страстей вокруг его статьи про Ариан-5 (где откровенные клеветы на Аду), ушел обратно.

В плане же эволюции языков и инструментария имеем следующее:

Oberon:
Вирт продолжает выпускать репорты Оберона (серия ревизий - 2007/2008, 2011, 2013). Соответственно Astrobe (http://astrobe.com) реализует Oberon rev 2011 с расширениями.

Также Rifat реализовал (http://oberspace.dyndns.org/index.php/topic,39.0.html) компилятор для Windows x86: http://exaprog.com/ (это Oberon rev 2007/2008 с расширениями).

A akron1 реализовал (http://oberspace.dyndns.org/index.php/topic,396.0.html) Oberon rev 2011 (также с небольшими расширениями но без сборщика мусора) опенсорс компилятор для x86 Windows, Linux, Kolibri : https://sites.google.com/site/oberon07compiler/versii

Также vlad написал (точнее процесс написания продолжается) компилятор Oberon rev 2011 в javascript: https://github.com/vladfolts/oberonjs Пощупать живьем можно тут: http://oberspace.dyndns.org/oberonjs.html Работает онлайн. Мы его постепенно допиливаем, медленно раскуриваем репорт на тему неоднозначностей и интерпретаций. Также я пишу всякие биндинги да демки: http://oberspace.dyndns.org/index.php/topic,541.0.html Прямо сейчас делаю биндинг к DOM, чтобы со всем этим можно было полноценно работать.

Вообще же идея в том, чтобы не просто иметь компилятор, но некий API к компилятору для построения тулзов анализа верификации и трансформации Оберон-кода. DOM + compiler API даст IDE и таковые тулзы.

Component Pascal:
GPCP : тут есть шевеления на тему кодогенерации не только в байткод .net или там jvm, но и в промежуточный код llvm с последующей генерацией нативного x86 или там ARM кода.

BlackBox: Ominc окончательно отказалась от развития поддержки и использования BB, и посоветовала (http://oberspace.dyndns.org/index.php/topic,524.0.html) всем переходить на Go, Java и С#. Поскольку BB-сообщество не согласно было куда-то переходить, началась интернациональная самоорганизация группы поддержки и разработки ББ. Был создан форум: forum.blackboxframework.org где с сентября месяца идет обсуждения регламента, организации и деления на "центр" и просто участников (в центр попали те, кто не пропустил письмо одного добровольца и успел записаться в гуглодукомент). Предполагается разделение форума на два - один только для членов центра (туда могут писать только они, а быть может и читать) и другой - для всех остальных.

Также совсем надавно Ominc выпустила релиз BB 1.6 под лицензией BSD. Что существенно, ибо ранее там была GPL-like.

Еще в плане развития BB - Петр Кушнир (тот самый kkk, да) вроде бы существенно продвинулся в написании OpenGL hosts-системы, то есть отрисовка гуя уже через OpenGL полностью. У него там все застопорилось из за рендеринга шрифтов - надо бы использовать freetype, но биндингов качественных пока нет. Ну, либо решать проблему как-то иначе (возможно из A2 взять фонт-машинку).

Под 64 бита BB пока никто не портировал, компилятор не переписывал. В плане многопоточности там все также как и было. Есть консольная x86-версии под linux для запуска готовых модулей.

А про Active Oberon и A2 наверно лучше Kemet расскажет.

Кто какой тематикой на просторах СНГ занимается, используя обероны (в том или ином виде)?
Насколько я понимаю, активней всех с Оберонами работает, использует Kemet (это его хлеб и продакшн):
Цитировать
1) Исследовательские проекты.
2) Трансформация данных ( хотя в большинстве случаев здесь используется Модула-3, а ранее Фрипаскаль)
3) Планируется замена ОСРВ на базе модифицированной NO на А2, эксперименты показали, что А2 вполне пригодна для этого.
4) Управляющее ПО (управление производственной линией)
5) Управляющее ПО (направление робототехника) - в процессе замены
6) Эксперименты по использованию А2 как основы для единой среды разработки ( на текущий момент под А2 переносится ФриПаскаль - переписывается на Активном Обероне, Модула-3, и наши компиляторы ). Как побочный эффект, возможно доведение до уровня настольной ОС.
7 ) Just for fan - куда без этого


Конкретно меня интересуют приложения оберонов/ады в системах реального времени, системах управления (желательно - авиация и чуть повыше), желательно более с уклоном в сторону "на голом железе".

Интерес обусловлен вопросами сертификации и (опять-таки!) повышения надёжности решений без значительного снижения быстродействия, по сравнению с системами, выполненными на Си и асме.
До кучи я немного использовал Astrobe для своих наколеночных экспериментов с микроконтроллерами.

Да, кроме Оберонов и Ады советую обратить внимание на Модулу-3, там у них недавно все это дело завелось на ARM'e на какой-то железяке вроде Raspberry Pi.

+ кроме Евгения кто-нибудь Хаскелем здесь ещё занимается?
Я занимался и продолжаю интересоваться эпизодически. Ну и всяким другим ФП и ФЯ.
Название: Re: Что за расклады?
Отправлено: valexey_u от Октябрь 28, 2013, 12:44:48 pm
На счет хаскеля и ФП - см. мою подпись :-)
Название: Re: Что за расклады?
Отправлено: Geniepro от Октябрь 28, 2013, 12:57:10 pm
На счет хаскеля и ФП - см. мою подпись :-)

Твоя подпись в хаскелле не пройдёт типизацию )) Также, впрочем, как и в других статически типизированных ФЯ...
Название: Re: Что за расклады?
Отправлено: valexey_u от Октябрь 28, 2013, 12:58:08 pm
Да, на счет оберонов - у нас же путеводитель есть! https://sites.google.com/site/oberonsystems/
Название: Re: Что за расклады?
Отправлено: Madzi от Октябрь 28, 2013, 01:00:40 pm
Я занимаюсь собственными проектами в рамках A2 (Active Oberon), в том числе реального времени и на голом железе. Пока это просто автоматизация, но в перспективе СУ для мобильного робота.
+ Интересен вариант с js средой, где есть прямая трансляция оберона в js
Название: Re: Что за расклады?
Отправлено: valexey_u от Октябрь 28, 2013, 01:01:13 pm
На счет хаскеля и ФП - см. мою подпись :-)

Твоя подпись в хаскелле не пройдёт типизацию )) Также, впрочем, как и в других статически типизированных ФЯ...

Да ладно? http://stackoverflow.com/questions/4273413/y-combinator-in-haskell

То есть вроде бы есть варианты.
Название: Re: Что за расклады?
Отправлено: Geniepro от Октябрь 28, 2013, 01:09:00 pm
На счет хаскеля и ФП - см. мою подпись :-)

Твоя подпись в хаскелле не пройдёт типизацию )) Также, впрочем, как и в других статически типизированных ФЯ...

Да ладно? http://stackoverflow.com/questions/4273413/y-combinator-in-haskell

То есть вроде бы есть варианты.

Ага, по этой ссылке:

Цитата: http://stackoverflow.com/a/5886279
The canonical definition of the Y combinator is as follows:

y = \f -> (\x -> f (x x)) (\x -> f (x x))

Although this is well-typed, it doesn't type check in Haskell because of the x x. This would require an infinite type:

x :: a -> b -- x is a function
x :: a      -- x is applied to x
--------------------------------
a = a -> b  -- infinite type

However, you can force it to type-check by using unsafeCoerce :: a -> b:

import Unsafe.Coerce

y :: (a -> a) -> a
y = \f -> (\x -> f (unsafeCoerce x x)) (\x -> f (unsafeCoerce x x))

main = putStrLn $ y ("circular reasoning works because " ++)
Название: Re: Что за расклады?
Отправлено: valexey_u от Октябрь 28, 2013, 01:12:20 pm
Ага, по этой ссылке:
А как же это?
newtype Mu a = Mu (Mu a -> a)
y f = (\h -> h $ Mu h) (\x -> f . (\(Mu g) -> g) x $ x)
Название: Re: Что за расклады?
Отправлено: valexey_u от Октябрь 28, 2013, 01:19:17 pm
Да, еще про Обероновские IDE, совсем забыл упомянуть свежачок: http://www.freepascal.ru/forum/viewtopic.php?f=10&t=9458
Название: Re: Что за расклады?
Отправлено: Geniepro от Октябрь 28, 2013, 04:13:24 pm
Ага, по этой ссылке:

А как же это?
newtype Mu a = Mu (Mu a -> a)

y f = (\h -> h $ Mu h) (\x -> f . (\(Mu g) -> g) x $ x)

Да ну, эти функции даже близко непохожи:

Цитировать
y = \f -> (\x -> f (x x)) (\x -> f (x x))
и
Цитировать
newtype Mu a = Mu (Mu a -> a)

y = \f -> (\x -> x (Mu x)) (\x -> f (((\Mu y) -> y) x) x)
Название: Re: Что за расклады?
Отправлено: adva от Октябрь 28, 2013, 11:05:55 pm
Да, еще про Обероновские IDE, совсем забыл упомянуть свежачок: http://www.freepascal.ru/forum/viewtopic.php?f=10&t=9458
Что-то не разобрался, там есть собранная ИДЕ?
Название: Re: Что за расклады?
Отправлено: Geniepro от Октябрь 29, 2013, 07:26:15 am
y = \f -> (\x -> f (x x)) (\x -> f (x x))

Точнее так:

newtype Mu a = Mu (Mu a -> a)

y = \f -> (\x -> x (Mu x)) (\x -> f (((\(Mu g) -> g) x) x))

Действительно получился Y-комбинатор, но какой-то уж совсем сложный, с новым типом данных зачем-то...
Название: Re: Что за расклады?
Отправлено: Илья Ермаков от Октябрь 29, 2013, 08:31:35 am
Владимир, приветствую!

Рад, что Вы живы-здоровы.

По поводу применений Оберонов в критических отраслях.
http://forum.oberoncore.ru/viewtopic.php?f=31&t=4496
Дмитрий Дагаев,  директор по АСУ ТП ОАО "Джэт", реализовал коммуникационный слой для АСУ ТП АЭС на Блэкбоксе.