Автор Тема: Oberon rev. 2015 (февраль)  (Прочитано 30372 раз)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Oberon rev. 2015 (февраль)
« : Февраль 26, 2015, 12:28:08 pm »
Собственно 22 февраля вышла новая ревизия ЯП Оберон. Брать как обычно тут: http://www.inf.ethz.ch/personal/wirth/Oberon/Oberon07.Report.pdf

Подробные изменения пока не смотрел.

Такжа в качестве бонуса вышел тьюториал по ЯП Оберону: http://www.inf.ethz.ch/personal/wirth/Oberon/PIO.pdf (на титульной странице написано что это 2014 год, но думаю это опечатка, ибо совпадает и месяц и день).
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #1 : Февраль 26, 2015, 12:34:00 pm »
Отличие первое: Вирт поменял определение типа SET, теперь это "SET the sets of integers between 0 and an implementation-dependent limit ", то есть SET может быть и 8 битным и 32 и 128 и даже 3 битным. Зависит от реализации.

Таким образом Вирт окончательно отвязал Оберон от 32битной платформы и мы теперь не знаем какая разрядность у INTEGER'a, SET и так далее.

Портабельность приложений написанных на Обероне становится довольно условной.
« Последнее редактирование: Февраль 26, 2015, 12:35:34 pm от valexey_u »
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #2 : Февраль 26, 2015, 12:44:15 pm »
Семантику CASE Вирт так и не привел в соответствие с Project Oberon.
Y = λf.(λx.f (x x)) (λx.f (x x))

Romiras

  • Sr. Member
  • ****
  • Сообщений: 264
    • Просмотр профиля
    • Romiras Dev Lab
Re: Oberon rev. 2015 (февраль)
« Ответ #3 : Февраль 26, 2015, 05:03:27 pm »
Портабельность приложений написанных на Обероне становится довольно условной.
Это почему?

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #4 : Февраль 26, 2015, 08:21:58 pm »
Портабельность приложений написанных на Обероне становится довольно условной.
Это почему?

Потому, что ты не можешь сказать компилятору что ты хочешь, и при этом не можешь его спросить что он может.
Y = λf.(λx.f (x x)) (λx.f (x x))

Romiras

  • Sr. Member
  • ****
  • Сообщений: 264
    • Просмотр профиля
    • Romiras Dev Lab
Re: Oberon rev. 2015 (февраль)
« Ответ #5 : Февраль 28, 2015, 08:34:48 am »
Портабельность приложений написанных на Обероне становится довольно условной.
Это почему?

Потому, что ты не можешь сказать компилятору что ты хочешь, и при этом не можешь его спросить что он может.
Приведи пример с проблемой.

Romiras

  • Sr. Member
  • ****
  • Сообщений: 264
    • Просмотр профиля
    • Romiras Dev Lab
Re: Oberon rev. 2015 (февраль)
« Ответ #6 : Февраль 28, 2015, 08:41:27 am »
Вообще, в модуле SYSTEM можно определить типы фиксированной размерности.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #7 : Февраль 28, 2015, 11:57:47 am »
Портабельность приложений написанных на Обероне становится довольно условной.
Это почему?

Потому, что ты не можешь сказать компилятору что ты хочешь, и при этом не можешь его спросить что он может.
Приведи пример с проблемой.

Любой код работающий с целочисленной арифметикой либо получающий целочисленные значения из окружающего мира.

А вот работа с константами и литералами останется скорее всего безопасной (потому, что компилятор может сделать там проверку на этапе компиляции и выдать ошибку если результат constexpr не влезает в переменную, хотя он в общем то не обязан это делать, поэтому даже тут возможно неожиданное для программиста поведение).
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #8 : Февраль 28, 2015, 12:03:49 pm »
Вообще, в модуле SYSTEM можно определить типы фиксированной размерности.

Нельзя. Во-первых SYSTEM это опциональный модуль (в реализации его может не быть). Во-вторых просто по логике такие типы должны быть не в SYSTEM, а в другом встраиваемом модуле.

К сожалению в Обероне даже нельзя сделать TYPE INT16 = INTEGER -- это запрещено репортом. Можно конечно выкрутиться тестами и прочим, но это уже не просто костыли, это уже целые заросли костылей. Экзоскелет для оберона.

Вирт сделел все, чтобы программа написанная для конкретной реализации оберона была гарантированно работоспособной только на данной реализации оберона. Перенос её на другую реализацию или скажем платформу - это боль и баги на ровном месте.

PS. Я вообще перестал понимать что такое ЯП Оберон в этом репорте - с одной стороны это не тот язык который используется в Project Oberon 2013, то есть компилятором ЯП Оберон эту ОС Оберон и модули её не собрать - там другой язык. С другой стороны в ЯП Оберон Вирт в тот же SYSTEM внес абсолютно бесполезную функцию LED, которая имеет смысл только в его последней реализации ОС Оберон. В общем какая-то фигня на постном масле.
Y = λf.(λx.f (x x)) (λx.f (x x))

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Oberon rev. 2015 (февраль)
« Ответ #9 : Февраль 28, 2015, 05:00:00 pm »
В общем, Romiras, не верь в правильность решения, принятого лауреатом премии Тьюринга.
Верь valexey'ю  ;D

dizer

  • Jr. Member
  • **
  • Сообщений: 80
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #10 : Март 01, 2015, 05:15:49 pm »
Очередное подтверждение тому, что Вирт клепает себе DSL под свой интерес.. и насрать ему на гоношение эпигонов (в том числе и с О.Коре )   :D

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #11 : Март 02, 2015, 05:16:04 am »
В общем, Romiras, не верь в правильность решения, принятого лауреатом премии Тьюринга.
Верь valexey'ю  ;D

Никому не верь -- сам думай. А веру оставь уделом религиозных людей...
to iterate is human, to recurse, divine

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

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Oberon rev. 2015 (февраль)
« Ответ #12 : Март 02, 2015, 01:00:38 pm »
В общем, Romiras, не верь в правильность решения, принятого лауреатом премии Тьюринга.
Верь valexey'ю  ;D

Никому не верь -- сам думай. А веру оставь уделом религиозных людей...
Угу, угу. Верь в свою думалку.  ;D
Думать по разному можно. Можно считать себя гением и заниматься хуйней. А можно заткнуть свою гордость в задницу и попытаться понять умного дядьку.

dizer

  • Jr. Member
  • **
  • Сообщений: 80
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #13 : Март 02, 2015, 01:57:45 pm »
Думать по разному можно. Можно считать себя гением и заниматься хуйней. А можно заткнуть свою гордость в задницу и попытаться понять умного дядьку.
:D многое возможно...особенно если дядька достаточно хорошо разрекламирован (если недостаточно - не беда - можно можно помочь ему в этом) - например... устроить из процесса "понимания" ритуал...  ;) Вон, у нас из под Ленина.. целую науку сообразили (Марксизм -Ленинизм) и в течении 70 лет повсеместно изучали... тут, конечно, так много не выжмешь  :(
« Последнее редактирование: Март 02, 2015, 02:00:55 pm от dizer »

dizer

  • Jr. Member
  • **
  • Сообщений: 80
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #14 : Март 02, 2015, 02:04:08 pm »
фигли...17 страниц vs. 50 томами... но  зато какой простор для интерпретации    :D