Re[8]: Синтаксический оверхед
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 13:57
Оценка:
Здравствуйте, xBlackCat, Вы писали:

BC>То, что значение n должно уменьшится только при n > 0 — это лично Ваши домыслы, ничем не подкреплённые.


Так ведь я же и написал, что именно в этом-то и состяла моя ошибка. До Вас это только сейчас дошло что ли?
Re[12]: Синтаксический оверхед
От: Privalov  
Дата: 22.06.05 13:57
Оценка: +1
Здравствуйте, Mamut, Вы писали:

M>Я не просил вас докапываться к коду. И вообще, я все еще жду ответа на здесь
Автор: Mamut
Дата: 22.06.05
, что получило продолжение здесь
Автор: Mamut
Дата: 22.06.05
. Ваш якобы ответ
Автор: Сергей Губанов
Дата: 22.06.05
проигнорировал 80% моего сообщения.


Это, IMHO, стандартный метод превращения дискуссии во флейм. Вместо ответа по существу — выпячивание мелочей и игнорирование сути. Хорошо, что кроме такого рода ответов здесь есть что почитать.

P.S. А BEGIN в Обероне существует! А кто-то кричал не своим голосом, что нет и что это устаревший синтаксис.
Re[6]: Синтаксический оверхед
От: Трурль  
Дата: 22.06.05 14:01
Оценка:
Здравствуйте, Кодт, Вы писали:

К>В преф, в отличие от бриджа, играют ещё и для удовольствия.


А разве в бридж играют не для удовольствия

Удовольствие — это когда попадаешь в цель!

Re[9]: Синтаксический оверхед
От: xBlackCat Россия  
Дата: 22.06.05 14:07
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Так ведь я же и написал, что именно в этом-то и состяла моя ошибка. До Вас это только сейчас дошло что ли?


До меня дошло ещё раньше.
Просто объясни мне, как можно написать операцию, и думать, что она не выполнится?

Но, как говорится, RTFM вначале, прежде чем что-то использовать
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Rojac &mdash; Rsdn Offline JAva Client
Анонсы и обсуждение здесь
Автор: xBlackCat
Дата: 08.02.10
Re[8]: Странная реакция
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 14:07
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Сергей, если Вы не удосуживаетесь просто прочитать документацию


Странная реакция.

Я пишу:
вот я на си-образном языке по недосмотру сделал глупую ошибку, которую не смог бы сделать в Modula/Oberon-образном языке

мне в ответ:
покажи-покажи, что за ошибку?

Я пишу:
вот такую-то

мне в ответ:
ты не почитал доки, а человект не удосуживающийся просто прочитать документацию... бла-бла-бла...

Приехали.
Я для этого что-ли ошибку-то тут засвечивал? Я ее тут засвечивал для того чтобы показать, что в Modula/Oberon-образном синтаксисе ошибки таких сортов невозможны.
Re[15]: Яркий пример
От: Privalov  
Дата: 22.06.05 14:09
Оценка:
Здравствуйте, Mamut, Вы писали:

P>>>Еще раз, универсальным типом цикла является WHILE (цикл с предусловием).


СГ>>Как же WHILE если LOOP?


M>Ох. Если бы вы хоть изредка читали то, что вам говорят оппоненты
Автор: Mamut
Дата: 22.06.05
.


M>Любой цикл и условие в программе можно переписать с использованием только цикла while. loop — это извращение, о котором написано здесь
Автор: Mamut
Дата: 22.06.05



Он не только оппонентов, он и классику не читает. Сейчас вряд ли найду, но эти положения у Вирта обсуждаются. Видимо, он и его не читал. О чем тогда еще говорить?
Re[6]: Синтаксический оверхед
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 14:10
Оценка: :))
Здравствуйте, Socrat, Вы писали:

S>А еще типичная ошибка — вместо "==" в условии поставить "="...


Ну да, точно. Как-то забыл упомянуть. Спасибо что напомнили. За одно только это си-образный синтаксис не имеет права существовать...
Re[7]: Синтаксический оверхед
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 14:12
Оценка: :)
Здравствуйте, Cyberax, Вы писали:

C>Угу, поэтому все академические разработки весьма успешно загибаются.


Между прочим, Java и .NET есть коммерческие реализации идей опробованных на оберонах.
Re[14]: Яркий пример
От: Privalov  
Дата: 22.06.05 14:12
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Наоборот, это WHILE и REPEAT выводятся из LOOP как частные случаи.


СГ>WILE a DO ... END можно понимать как сокращенную запись: LOOP IF a THEN ... ELSE EXIT END END,

СГ>REPEAT ... UNTIL b можно понимать как сокращенную запись: LOOP ... IF b THEN EXIT END END.


  while(p)
  {
   ...
  }


  LOOP
     IF (~P) THEN EXIT;
     ...
  REPEAT


Хотите подсчитать оверхед?

Еще раз: читайте классику!
Re[10]: Синтаксический оверхед
От: Курилка Россия http://kirya.narod.ru/
Дата: 22.06.05 14:12
Оценка:
Здравствуйте, xBlackCat, Вы писали:

BC>Здравствуйте, Сергей Губанов, Вы писали:


СГ>>Так ведь я же и написал, что именно в этом-то и состяла моя ошибка. До Вас это только сейчас дошло что ли?


BC>До меня дошло ещё раньше.

BC>Просто объясни мне, как можно написать операцию, и думать, что она не выполнится?

BC>Но, как говорится, RTFM вначале, прежде чем что-то использовать


Да не, зачем? Оберон же за нас всё решит
Re[9]: Странная реакция
От: Курилка Россия http://kirya.narod.ru/
Дата: 22.06.05 14:13
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Я для этого что-ли ошибку-то тут засвечивал? Я ее тут засвечивал для того чтобы показать, что в Modula/Oberon-образном синтаксисе ошибки таких сортов невозможны.


Доказательства в студию!
Re[14]: Яркий пример
От: Mamut Швеция http://dmitriid.com
Дата: 22.06.05 14:13
Оценка: +1 -1
M>>"Не плоди сущностей без необходимости" LOOP — такая вот ненужная сущность.

СГ>Странно, а если нужно проверить условие прекращения итерации уже находясь внутри итерации, тогда как быть?


Вы издеваетесь? Посмотрите в практически любой другой язык программирования.
while(cond)           
{                            
  if(another_cond)    
    break;                   
}


Для for и do аналогично. Какие могут быть насчет этого есть проблемы?

СГ>Наоборот, это WHILE и REPEAT выводятся из LOOP как частные случаи.


СГ>WILE a DO ... END можно понимать как сокращенную запись: LOOP IF a THEN ... ELSE EXIT END END,

СГ>REPEAT ... UNTIL b можно понимать как сокращенную запись: LOOP ... IF b THEN EXIT END END.

Еще раз, по буквам.

В обероне циклы while, for, repeat слепо следуют структурной парадигме, из которой следует, что в цикле должна быть одна точка выхода. Но в реальном мире необходимо больше точек выхода. Так в Обероне рождается LOOP. Скажите, от того, что в while есть возможность выхода — это плохо? Нет и еще раз нет:
Cтруктурный подход, в котором есть логическая ошибка    

int errorCode = 0;

while(sockeatread() != eof) // eof не обязательно наступит!
{
  processData();
  if(data != expectedData)
    errorCode = BAD_DATA;
}

легким движением руки превращается в неструктурный,
но без ошибки:

int errorCode = 0;

while(sockeatread() != eof) // eof не обязательно наступит!
{
  if(bytesRead > ALLOWED_SIZE) {
    errorCode = HACKER_ATTACK;
    break;
  }
  processData();
  if(data != expectedData) {
    errorCode = BAD_DATA;
    break; // зачем нам продолжать читать данные, если они неверны?
  }
}

а в случае с Обероном трансформация не настолько тривиальна 
и не эквивалентна логически 

errorCode := 0;

WHILE socketRead # eof DO
  processData;
  IF data # expectedData THEN errorCode := BAD_DATA END;
END;

превращается в

errorCode := 0;

LOOP
  IF socketRead # eof THEN
    IF bytesRead > ALLOWED_BITES THEN
      errorCode := HACKER_ATTACK;
      EXIT;
    END;
    processData;
    IF data # expectedData THEN
      errorCode := BAD_DATA;
      EXIT;
    END;
  END;
END;


В обероновском случае нам приходится менять логику работы с сокетом с понятного "пока есть данные" на "данные есть всегда., только надо проверить, а не закончился ли поток". Хуже того, трансформация кода должна проходить очень тщательно. Один while do end заменяется на громоздкую конструкцию loop if then end end.

Ну и где преимущества убогих, кастрированных циклов Оберона над великолепно-гибкими циклами других языков?

И, хотя это являтся оффтопиком для данной подветки, еще одно замечание:
// С++
if(data != expectedData) // сравниваем две переменные, видно из кода

{* Oberon *}
IF data # expectedData THEN // сравинваем две переменные? 
                            // переменную и значение функции?
                            // значения двух функций?


Наглядность языка? Где? Не вижу.

Просьба к коду не придираться


dmitriid.comGitHubLinkedIn
Re[12]: Синтаксический оверхед
От: jazzer Россия Skype: enerjazzer
Дата: 22.06.05 14:14
Оценка: :))) :)
Здравствуйте, Mamut, Вы писали:

M>Можете считать то, что я написал псевдокодом.


Нельзя, у псевдокода оверхед большой
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[8]: Синтаксический оверхед
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 14:17
Оценка: :)
Здравствуйте, moudrick, Вы писали:

M> С++, кстати, тоже начинался с академической разработки.


Академические проекты академическим проектам рознь.

1) Страуструп на момент придумывания им С++ был (еще совсем зелёным) аспирантом.

2) Лауреат премии Тьюринга Никлаус Вирт на момент создания Оберона был профессором и было ему где-то под пятьдесят.

Разница между первым "академическим проектом" аля курсовик и вторым Академическим проектом с большой буквы, огромна.
Re[9]: Синтаксический оверхед
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 14:20
Оценка: -1 :)
Здравствуйте, jazzer, Вы писали:

J>Потому что он создавался именно для облегчения программирования на С (как и С по отношению к асму, кстати).

J>Цель сугубо практическая.
J>И обкатывался язык не на теоремах, а в руках действующих программистов на С.
J>Почитай D&E.

Не надо быть прорицателем, чтобы понять, что реальная цель у аспиранта Страуструпа была защитить диссеру чтобы его взяли на работу.
Re[8]: Синтаксический оверхед
От: Mamut Швеция http://dmitriid.com
Дата: 22.06.05 14:21
Оценка:
SJA>>Нет. Нам стандарт de jure пожалста. Ну, тот которым все Оберонщики очень гордятся, что он маленький и компактный. Это должно быть там.

P>Я читал. Нет там ничего. Ссылку навскидку не вспомню.


Нет там ничего.
сайт Оберона
Общая документация
Документация по Оберонам


ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ. Держите меня!!! :
здесь

What advantage do you see in using Oberon rather than other widespread programming languages?
A: The following was reported by Antonio Cisternino :

Reading the old book "Godel, Echer, Bach: an eternal golden braid", Hofstadter, 1980, I have found the following in chapter X:

"Programming in different languages is like composing pieces in different keys, particularly if you work at the keyboard. If you have learned or written pieces in many keys, each key will have its own special emotional aura. Also, certain kinds of figurations "lie in the hand" in one key but are awkward in another. So you are channeled by your choice of key. In some ways, even enharmonic keys, such as C-sharp and D-flat, are quite distinct in feeling. This shows how a notational system can play a significant role in shaping the final product."

I think it's a nice way to say that multiple languages may help solving complex problems if each language is used to exploit its strength. It is related with CLR and the music context is appropriate to the name C#.


И все???? И это — все преимущество????????


dmitriid.comGitHubLinkedIn
Re[10]: Очередной яркий пример
От: Трурль  
Дата: 22.06.05 14:21
Оценка: :)
Здравствуйте, Sergey J. A., Вы писали:

SJA>Кстати ! Когда иссякнет эта тема, предлагаю начать следующую ! Как извесно в С/С++ индескы начинаются с 0, а в Обероне с 1 (т.е. я так предполагаю). "Спрашивается как долго ...". Ну и так далее. Убедительные примеры, доказательства и процентные соотношения выдумаете сами.


Увы, должен Вас огорчить. Ваше предположение не соответствует действительности. Но отчаиваться не стоит. Есть масса других вещей, о которых можно приятно пофлеймить. Например:
Почему модуль на Обероне должен завершаться точкой?
Re[7]: Синтаксический оверхед
От: Salex100 Россия  
Дата: 22.06.05 14:22
Оценка: +1 :))) :))) :))
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, Socrat, Вы писали:


S>>А еще типичная ошибка — вместо "==" в условии поставить "="...


СГ>Ну да, точно. Как-то забыл упомянуть. Спасибо что напомнили. За одно только это си-образный синтаксис не имеет права существовать...


За одно только := паскалеобразные языки не имеют права на существование! Это же 100% оверхед по операции присваивания!
Жизнь удалась!
Re[7]: Синтаксический оверхед
От: boomsic Россия  
Дата: 22.06.05 14:25
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

вы погрязли во лжи и глупости...


СГ>Здравствуйте, Socrat, Вы писали:


S>>А еще типичная ошибка — вместо "==" в условии поставить "="...



СГ>Ну да, точно. Как-то забыл упомянуть. Спасибо что напомнили. За одно только это си-образный синтаксис не имеет права существовать...


угу не имеет... точно си в сад...


СГ>Странно, а если нужно проверить условие прекращения итерации уже находясь внутри итерации, тогда как быть?


так не давно мне доказывали что плохо выходиь из итерации по брейку а сейчас уже что то другое.....
ICQ 227964124
Re[13]: Синтаксический оверхед
От: Mamut Швеция http://dmitriid.com
Дата: 22.06.05 14:26
Оценка:
P>Это, IMHO, стандартный метод превращения дискуссии во флейм. Вместо ответа по существу — выпячивание мелочей и игнорирование сути.

Какой-то ответ
Автор: Сергей Губанов
Дата: 22.06.05
там все же появился. Советую почитать. Я долго смеялся

P>Хорошо, что кроме такого рода ответов здесь есть что почитать.


Ага

P>P.S. А BEGIN в Обероне существует! А кто-то кричал не своим голосом, что нет и что это устаревший синтаксис.


"А она все же вертится"


dmitriid.comGitHubLinkedIn
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.