Автор Тема: Раскручиваем компилятор O7  (Прочитано 40718 раз)

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Раскручиваем компилятор O7
« Ответ #15 : Октябрь 27, 2013, 10:02:10 am »
Цитировать
Оберон-2 был разработан в 1991 году в Швейцарской высшей технической школе (Цюрих) Никлаусом Виртом и Ханспетером Мёссенбёком
http://www.uni-vologda.ac.ru/oberon/o2rus.htm

Мало ли что Свердлов понаписал на своём сайте. Он и про арифметику синтаксиса пургу гнал.


Всё в порядке, гони хуйню дальше, женя. Ты же вон какой профессионал ;)
петрушка, слушай лучше Стравинского, больше пользы принесёшь...
Заявка на победу. То есть ты сомневаешься, что О2 был написан виртом, как развитие Оберона? Ну ты и ебанько.

Третий раз повторяю (а значит это истина) -- учи матчасть!

Мёссенбёк для своих нужд переделал Оберон, обозвал его Обероном-2, а Вирт подмахнул рапорт об Обероне-2. Вот и всё участие Вирта в создании Оберона-2.
to iterate is human, to recurse, divine

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

kkk

  • Гость
Re: Раскручиваем компилятор O7
« Ответ #16 : Октябрь 27, 2013, 10:07:43 am »
А ты рядом стоял, свечку держал. Вот оно что.
Какой ты. :)

kkk

  • Гость
Re: Раскручиваем компилятор O7
« Ответ #17 : Октябрь 27, 2013, 10:08:52 am »
Сколько раз я тебя назвал уёбищем? Два, три? Может уже пора закрепить результат?

Berserker

  • Sr. Member
  • ****
  • Сообщений: 254
    • Просмотр профиля
Re: Раскручиваем компилятор O7
« Ответ #18 : Октябрь 27, 2013, 10:30:48 am »
Vlad, у меня в Делфи код ещё более многословен. Это абсолютно не напрягает, если настроить такие редакторы как Notepad++ (плагин QuickText) или Sublime Text 2. Практически для всего пишешь сниппеты или их аналоги. И целые блоки и серии описаний в несколько нажатий клавиш. Например, i CTRL + ENTER = INTEGER. r =END RETURN x; Попробуйте.

kkk

  • Гость
Re: Раскручиваем компилятор O7
« Ответ #19 : Октябрь 27, 2013, 10:41:21 am »
Дельфи это ведь моветон. Грешно вспоминать такое на форуме умных адекватных людей ;) Вот вы бы лучше вспомнили Луа, или Скала.

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Re: Раскручиваем компилятор O7
« Ответ #20 : Октябрь 27, 2013, 12:22:14 pm »
Кчтати, Влад, если доведёшь компилятор до соответствия этому рапорту, можно его смело переименовывать из Oberon-07/11 в Oberon-13, или же просто в Oberon. Так будет правильнее...
Файл репорта Вирт назвал Oberon07.Report.pdf - 07, а не 13

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Раскручиваем компилятор O7
« Ответ #21 : Октябрь 27, 2013, 03:24:05 pm »
Хотя нет, выйдет примерно так: "stream.pos(stream)". Да уж, хрен редьки не слаще...

Угу. Без расширений (методы или не знаю что) все равно ерунда будет.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Раскручиваем компилятор O7
« Ответ #22 : Октябрь 27, 2013, 03:28:11 pm »
Vlad, у меня в Делфи код ещё более многословен. Это абсолютно не напрягает, если настроить такие редакторы как Notepad++ (плагин QuickText) или Sublime Text 2.

Кстати, а нет ли у тебя расцветки для Сублима?

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Раскручиваем компилятор O7
« Ответ #23 : Октябрь 27, 2013, 04:16:34 pm »
Гм. А что мешает сделать как-то так?

MODULE Test;
IMPORT SomeModule;

PROCEDURE LetDoIt;
VAR
   var : SomeModule.SomeType;
   process : PROCEDURE (v : SomeModule.SomeType);
BEGIN
   process := SomeModule.ProcessSomeType;
   process(var);
   (* и тут еще 100500 строк кода с испоользованием process *)
END LetDoIt;

END Test;
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Раскручиваем компилятор O7
« Ответ #24 : Октябрь 27, 2013, 04:30:21 pm »
Гм. А что мешает сделать как-то так?

MODULE Test;
IMPORT SomeModule;

PROCEDURE LetDoIt;
VAR
   var : SomeModule.SomeType;
   process : PROCEDURE (v : SomeModule.SomeType);
BEGIN
   process := SomeModule.ProcessSomeType;
   process(var);
   (* и тут еще 100500 строк кода с испоользованием process *)
END LetDoIt;

END Test;

Так ещё хуже -- повышается уровень косвенности, труднее понимать, что там вообще происходит...
to iterate is human, to recurse, divine

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

Berserker

  • Sr. Member
  • ****
  • Сообщений: 254
    • Просмотр профиля
Re: Раскручиваем компилятор O7
« Ответ #25 : Октябрь 27, 2013, 04:41:58 pm »
Цитировать
Кстати, а нет ли у тебя расцветки для Сублима?
К сожалению, нет. Нужно брать за основу пакет Pascal. Там 5,35 кибибайта размер всего.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Раскручиваем компилятор O7
« Ответ #26 : Октябрь 27, 2013, 04:50:08 pm »
Гм. А что мешает сделать как-то так?

MODULE Test;
IMPORT SomeModule;

PROCEDURE LetDoIt;
VAR
   var : SomeModule.SomeType;
   process : PROCEDURE (v : SomeModule.SomeType);
BEGIN
   process := SomeModule.ProcessSomeType;
   process(var);
   (* и тут еще 100500 строк кода с испоользованием process *)
END LetDoIt;

END Test;

Так ещё хуже -- повышается уровень косвенности, труднее понимать, что там вообще происходит...

foo.bar() -- тоже уровень косвенности огого, особенно если bar это виртуальная функция - ведь ты даже не знаешь в каком модуле она лежит! И не узнаешь пока все исходники не перетрясешь!

А тут же - все локально и явным образом определено.
Y = λf.(λx.f (x x)) (λx.f (x x))

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Раскручиваем компилятор O7
« Ответ #27 : Октябрь 28, 2013, 12:36:32 am »
А как вообще этот код может компилироваться?

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

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Раскручиваем компилятор O7
« Ответ #28 : Октябрь 28, 2013, 04:37:32 am »
Это бага. Пока прокатывает, потому что модуль потребляется из жабаскрипта  (а не из других обероновских модулей).

Я тут было уже фикснул, но подумал, что нет, не бага. Например вот такой случай:
MODULE test;
TYPE
    T = POINTER TO RECORD END;
    Proc* = PROCEDURE(): T;

PROCEDURE method1*(): T;
...
PROCEDURE method2*(): T;
...
PROCEDURE do*(method: Proc);
...

IMPORT test;
...
test.do(test.p1);

Возможно даже Proc не надо экспортировать. Так что пока откачу фикс.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Раскручиваем компилятор O7
« Ответ #29 : Октябрь 28, 2013, 05:16:59 am »
Это бага. Пока прокатывает, потому что модуль потребляется из жабаскрипта  (а не из других обероновских модулей).

Я тут было уже фикснул, но подумал, что нет, не бага. Например вот такой случай:
MODULE test;
TYPE
    T = POINTER TO RECORD END;
    Proc* = PROCEDURE(): T;

PROCEDURE method1*(): T;
...
PROCEDURE method2*(): T;
...
PROCEDURE do*(method: Proc);
...

IMPORT test;
...
test.do(test.p1);
Всё же я думаю, что это баг. Как можно в обероне использовать процедуры с неизвестными сигнатурами?
Возможно даже Proc не надо экспортировать. Так что пока откачу фикс.
to iterate is human, to recurse, divine

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