Автор Тема: Что за расклады?  (Прочитано 7513 раз)

Wlad

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

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

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

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Что за расклады?
« Ответ #1 : Октябрь 28, 2013, 05:34:27 am »
Что за эти годы изменилось?
ЧТо ныне в оберон-сообществе?
Кого уж нет, а кто - далече?
Что за делёжка и революсьон с оберонкором?

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


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

Ок, чем смогу -- помогу ))
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Что за расклады?
« Ответ #2 : Октябрь 28, 2013, 12:42:28 pm »
Что за эти годы изменилось?
ЧТо ныне в оберон-сообществе?
Кого уж нет, а кто - далече?
Что за делёжка и революсьон с оберонкором?
Ну, Руслан Богатырев скажем забил на обероны, РОСЫ и вообще всякие операционки, и сейчас явно занимается существенно другим.

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

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

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

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

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

Также Rifat реализовал компилятор для Windows x86: http://exaprog.com/ (это Oberon rev 2007/2008 с расширениями).

A akron1 реализовал 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, и посоветовала всем переходить на 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.

+ кроме Евгения кто-нибудь Хаскелем здесь ещё занимается?
Я занимался и продолжаю интересоваться эпизодически. Ну и всяким другим ФП и ФЯ.
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Что за расклады?
« Ответ #3 : Октябрь 28, 2013, 12:44:48 pm »
На счет хаскеля и ФП - см. мою подпись :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Что за расклады?
« Ответ #4 : Октябрь 28, 2013, 12:57:10 pm »
На счет хаскеля и ФП - см. мою подпись :-)

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

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Что за расклады?
« Ответ #5 : Октябрь 28, 2013, 12:58:08 pm »
Да, на счет оберонов - у нас же путеводитель есть! https://sites.google.com/site/oberonsystems/
Y = λf.(λx.f (x x)) (λx.f (x x))

Madzi

  • Jr. Member
  • **
  • Сообщений: 86
    • Просмотр профиля
Re: Что за расклады?
« Ответ #6 : Октябрь 28, 2013, 01:00:40 pm »
Я занимаюсь собственными проектами в рамках A2 (Active Oberon), в том числе реального времени и на голом железе. Пока это просто автоматизация, но в перспективе СУ для мобильного робота.
+ Интересен вариант с js средой, где есть прямая трансляция оберона в js

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Что за расклады?
« Ответ #7 : Октябрь 28, 2013, 01:01:13 pm »
На счет хаскеля и ФП - см. мою подпись :-)

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

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

То есть вроде бы есть варианты.
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Что за расклады?
« Ответ #8 : Октябрь 28, 2013, 01:09:00 pm »
На счет хаскеля и ФП - см. мою подпись :-)

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

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

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

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

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 " ++)
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Что за расклады?
« Ответ #9 : Октябрь 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)
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Что за расклады?
« Ответ #10 : Октябрь 28, 2013, 01:19:17 pm »
Да, еще про Обероновские IDE, совсем забыл упомянуть свежачок: http://www.freepascal.ru/forum/viewtopic.php?f=10&t=9458
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Что за расклады?
« Ответ #11 : Октябрь 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)
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

adva

  • Sr. Member
  • ****
  • Сообщений: 385
    • Просмотр профиля
Re: Что за расклады?
« Ответ #12 : Октябрь 28, 2013, 11:05:55 pm »
Да, еще про Обероновские IDE, совсем забыл упомянуть свежачок: http://www.freepascal.ru/forum/viewtopic.php?f=10&t=9458
Что-то не разобрался, там есть собранная ИДЕ?

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Что за расклады?
« Ответ #13 : Октябрь 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-комбинатор, но какой-то уж совсем сложный, с новым типом данных зачем-то...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Что за расклады?
« Ответ #14 : Октябрь 29, 2013, 08:31:35 am »
Владимир, приветствую!

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

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