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

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Oberon rev. 2015 (февраль)
« Ответ #15 : Март 02, 2015, 02:08:56 pm »
Почему обязательно ритуал?
Это ученый с мировыми именем. И это подтверждено справкой.
Надо быть полным идиотом, чтобы считать себя умнее его.
Как минимум следует 1000 раз подумать прежде чем ставить его решения под сомнение.
Кто мы собсна такие, чтобы его критиковать?
Из нас тут никто пока еще не сделал даже тысячной доли из того, что сделал он.
Зато такие все специалисты в языках просто охуеть.
Маловата у вас пиписка, товарищи, чтобы Вирта критиковать.

dizer

  • Jr. Member
  • **
  • Сообщений: 80
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #16 : Март 02, 2015, 02:13:16 pm »
Не обязательно... я же сказал  - в качестве примера  :D  - более подробно на ранний OberonCore
(т.е. хотите - критикуйте, хотите - поклоняйтесь, хотите - ВДУМЧИВО ИЗУЧАЙТЕ , наконец, хотите - используйте в своих целях....)
« Последнее редактирование: Март 02, 2015, 02:15:37 pm от dizer »

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #17 : Март 02, 2015, 03:29:25 pm »
Почему обязательно ритуал?
Это ученый с мировыми именем. И это подтверждено справкой.
Надо быть полным идиотом, чтобы считать себя умнее его.
Как минимум следует 1000 раз подумать прежде чем ставить его решения под сомнение.
Кто мы собсна такие, чтобы его критиковать?
Из нас тут никто пока еще не сделал даже тысячной доли из того, что сделал он.
Зато такие все специалисты в языках просто охуеть.
Маловата у вас пиписка, товарищи, чтобы Вирта критиковать.

Я свое мнение обосновал (как обоснованы и решения по дизайну языка той же Ады, где с этим все хорошо). Вирт же свои решения не обосновал.

Да, а авторитетов для меня не было нет и не будет.
Y = λf.(λx.f (x x)) (λx.f (x x))

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Oberon rev. 2015 (февраль)
« Ответ #18 : Март 02, 2015, 03:45:48 pm »
Пардон, но я не видел обоснования. Можешь процитировать?

kemiisto

  • Jr. Member
  • **
  • Сообщений: 64
    • Просмотр профиля
    • kemiisto.ru
Re: Oberon rev. 2015 (февраль)
« Ответ #19 : Март 02, 2015, 04:24:35 pm »
Портабельность приложений написанных на Обероне становится довольно условной.
По-моему, ты делаешь из мухи слона. ;) Вирт разве где-то эту самую "портабельность" в том виде, в котором ты её хочешь (т.е. между различными реализациями) деклалировал? Нет. Ну, собственно, и точка на этом. Если тебе нужна переносимость между реализациями, то Oberon (в его нынешнем состоянии) тебе противопоказан. :)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Oberon rev. 2015 (февраль)
« Ответ #20 : Март 02, 2015, 04:37:30 pm »
kemiisto, ну кто так делает? Постепеееенно нужно... человеков троллировать.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Oberon rev. 2015 (февраль)
« Ответ #21 : Март 02, 2015, 05:00:32 pm »
А ведь как охуительно обвинять что-то в несоответствии твоим бредовым фантазиям.
Например, берем и называем язык непортабельным. И хуй ведь разберешь чего там аффтар под "портабельностью" набредил.
Или вот берем и говорим, что отсутствие отрицательных чисел в языке не позволяет использовать CASE по назначению. И ведь нам совершенно похуй, что инертность мышления не дает нам развидеть в CASE сишный SWITCH. Мы ведь не знаем из курса математики о функциях выбора всяких. Зато мы шарим в функцианальном программировании. Вот так вот. Элементарных вещей о функциях не знаем, но специалисты в ФП ниипаца.
Нет! Это тьюринговый лауреат дурак, а не я!
А еще мы можем заявить, что Вирт говнокодер, только потому, что он использует глобальные переменные.
Нам ведь похуй, что в системе есть глобальное состояние, которое нужно хранить.
Тьфу, блять. Стыдно должно быть.

dizer

  • Jr. Member
  • **
  • Сообщений: 80
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #22 : Март 02, 2015, 05:48:24 pm »
А ведь как охуительно обвинять что-то в несоответствии твоим бредовым фантазиям.
Например...
   сколько экспрессии... :D но справедливости ради ради - не менее (охуительно) чем сделать идола и морочить голову начинающим, впрочем, первое можно трактовать как как "заблуждение  во время поиска истины" а вот второе... довольно мерзостно (на мой взгляд) -  впрочем - дело хозяйское  ;)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Oberon rev. 2015 (февраль)
« Ответ #23 : Март 02, 2015, 05:55:51 pm »
Господь с тобой, dizer, давно уже перевелись идолопоклонники обероновые. Нынче модно ящерам всяким поклоняться  ;D

kemiisto

  • Jr. Member
  • **
  • Сообщений: 64
    • Просмотр профиля
    • kemiisto.ru
Re: Oberon rev. 2015 (февраль)
« Ответ #24 : Март 02, 2015, 06:03:49 pm »
Весело у вас тут. ;D

dizer

  • Jr. Member
  • **
  • Сообщений: 80
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #25 : Март 02, 2015, 06:04:07 pm »
Господь с тобой, dizer, давно уже перевелись идолопоклонники обероновые. Нынче модно ящерам всяким поклоняться  ;D
1.  Если ОН есть , то как от него отвяжешься....
2. По большей части земноводным... но какая разница кому? и из за чего? (я же не зря припомнил Ленинизм).... я ведь говорю про то, что эта ТЕМА вечна.... А ошибки... кто не ошибался из нас  ;) то же были и будут...

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #26 : Март 03, 2015, 07:14:26 pm »
Семантику CASE Вирт так и не привел в соответствие с Project Oberon.

Я правильно понял, что CASE может исползоваться только для расширений типа, имеющих название вида: <base record> + <number>?

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Oberon rev. 2015 (февраль)
« Ответ #27 : Март 03, 2015, 08:09:12 pm »
Там написано:
Цитировать
The type T of the case expression (case variable) may also be a record or pointer type. Then the
case labels must be extensions of T, and in the statements Si labelled by Ti, the case variable is
considered as of type Ti.

Цитировать
Тип Т CASE-выражения может быть типом-записью или типом-указателем. CASE-метки должны быть расширениями типа Т и в i-той ветке с i-той меткой (i-тый тип Ti) CASE-переменная считается имеющей тип Ti

Это объяснение примера:
TYPE R = RECORD a: INTEGER END ;
 R0 = RECORD (R) b: INTEGER END ;
 R1 = RECORD (R) b: REAL END ;
 R2 = RECORD (R) b: SET END ;
 P = POINTER TO R;
 P0 = POINTER TO R0;
 P1 = POINTER TO R1;
 P2 = POINTER TO R2;
VAR p: P; p0: P0; p1: P1; p2: P2;
CASE p OF
 P0: p0.b := 10 |
 P1: p1.b := 2.5 |
 P2: p2.b := {0, 2}
END

Он просто занумеровал ветки суффиксом i для наглядности.

Подозреваю, что он в конце концов откажется от:
Цитировать
case variable is considered as of type Ti
И будет тупо выбиралка без охраны.  ;D

Такое ощущение, что он еще в раздумьях (или ему пока лень чистить код). Т.к. в коде можно встретить и такой вариант использования:
CASE M OF
    FontMsg: fnt := M(FontMsg).fnt; w := 0; len := 0; pos := obj(Caption).pos;
      Texts.OpenReader(R, T, pos); Texts.Read(R, ch); dy := R.fnt.minY;
      WHILE ch > 0DX DO
        Fonts.GetPat(fnt, ch, dx, x1, y1, w1, h1, patadr);
        INC(w, dx); INC(len); Texts.Read(R, ch)
      END ;
      INC(obj.y, fnt.minY-dy); obj.w := w; obj.h := fnt.height;
      Texts.ChangeLooks(T, pos, pos+len, {0}, fnt, 0 , 0) |
    ColorMsg: obj.col := M(ColorMsg).col
и такой:
PROCEDURE ChangeMacro(obj: Object; VAR M: Msg);
  BEGIN
    CASE M OF ColorMsg: obj.col := M.col END
  END ChangeMacro;

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #28 : Март 06, 2015, 03:47:26 am »
Тип Т CASE-выражения может быть типом-записью или типом-указателем. CASE-метки должны быть расширениями типа Т и в i-той ветке с i-той меткой (i-тый тип Ti) CASE-переменная считается имеющей тип Ti

Так понятнее, спасибо :) Т.е., это полное повторение семантики WITH из CP?

P0: p0.b := 10 |
 P1: p1.b := 2.5 |
 P2: p2.b := {0, 2}

Он просто занумеровал ветки суффиксом i для наглядности.

Зачем в примере переменные p0, p1, p2? Можно представить, что пропущено "p0 := p", "p1 := p", "p2 := p" в каждой ветке? Блин, всего 16 страниц описания очень простого языка и вот такая откровенная херня.

P.S. Я пообсуждал эту тему на буржуйском IRC - народ тоже в недоумении, что же Вирт имел ввиду в своем примере. Собственно, там и предположили, что забыто присваивание в каждой ветке.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Oberon rev. 2015 (февраль)
« Ответ #29 : Март 06, 2015, 05:39:33 am »
> Собственно, там и предположили, что забыто присваивание в каждой ветке.

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

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