OberonCore
https://forum.oberoncore.ru/

Альтернативные циклы
https://forum.oberoncore.ru/viewtopic.php?f=27&t=1404
Страница 1 из 1

Автор:  Сергей Губанов [ Суббота, 14 Март, 2009 13:07 ]
Заголовок сообщения:  Re: Ключевые слова на родном языке

Можно попробовать ввести цикл с мультиусловиями останова:
Код:
ПОВТОРЯТЬ
  Задача0
ПРИ условие0 СТОП
  Задача1
ПРИ условие1 СТОП
  Задача2
ПРИ условие2 СТОП
  Задача3
ПОВТОРЕНО
Замена:
ПОВТОРЯТЬ --> LOOP
ПОВТОРЕНО --> END
ПРИ --> IF
СТОП --> THEN EXIT END

Автор:  Info21 [ Суббота, 14 Март, 2009 16:16 ]
Заголовок сообщения:  Re: Ключевые слова на родном языке

Сергей Губанов писал(а):
Можно попробовать ввести цикл с мультиусловиями останова:
Это стандартная схема оптимизации схемы линейного поиска (чуть более общо -- цикла Дейкстры), когда условия сложные, и их части хорошо бы сохранить для вычислений внутри соотв. ветки цикла (в вычислительных задачах, но не только).

В таких задачах возникают (похоже) только LOOP с EXIT'ами под IF'ами на первом уровне в теле цикла. Что, кажется, есть в точности предложенное.
Но до конца тут не ясно -- если под эту схему подгоняются аналогичные оптимизации многоветочного ц.Д. (с ходу не соображу), то можно обсуждать серьезно.

Автор:  Сергей Губанов [ Воскресенье, 15 Март, 2009 22:35 ]
Заголовок сообщения:  Re: Ключевые слова на родном языке

Info21 писал(а):
Это стандартная схема оптимизации схемы линейного поиска (чуть более общо -- цикла Дейкстры)...
Я бы сказал, что это "зеркальное отражение" цикла Дейкстры. У Дейкстры -- мультиусловие продолжения, здесь же мультиусловие останова.

Автор:  Info21 [ Воскресенье, 15 Март, 2009 23:09 ]
Заголовок сообщения:  Re: Ключевые слова на родном языке

Сергей Губанов писал(а):
Info21 писал(а):
Это стандартная схема оптимизации схемы линейного поиска (чуть более общо -- цикла Дейкстры)...
Я бы сказал, что это "зеркальное отражение" цикла Дейкстры. ...
Допустим. И что?

Автор:  Сергей Губанов [ Вторник, 17 Март, 2009 12:49 ]
Заголовок сообщения:  Re: Ключевые слова на родном языке

В языке Ада это основной цикл.
Код:
loop
  Задача0
exit when условие0;
  Задача1
exit when условие1;
  Задача2
exit when условие2;
  Задача3
end loop;
Просто свидетельство, для общего образования.

Автор:  Info21 [ Вторник, 17 Март, 2009 15:06 ]
Заголовок сообщения:  Альтернативные циклы

В веточке про ключевые слова на родном языке возникло ответвление, сейчас попрошу сюда перенести...

Автор:  Info21 [ Среда, 18 Март, 2009 11:31 ]
Заголовок сообщения:  Re: Ключевые слова на родном языке

Сергей Губанов писал(а):
В языке Ада это основной цикл.
Так чем же он мотивирован?

Автор:  Сергей Губанов [ Среда, 18 Март, 2009 15:23 ]
Заголовок сообщения:  Re: Альтернативные циклы

Я передумал. Он не "зеркальное отражение" цикла Дейкстры. В ЦД выполнение заканчивается когда ложны все условия, а в Адском цикле выполнение заканчивается когда истинно хотя бы одно условие. Мощность разная.

Автор:  Trurl [ Среда, 18 Март, 2009 17:35 ]
Заголовок сообщения:  Re: Альтернативные циклы

А вот суперцикл из SETL
Код:
LOOP
  INIT   blocki  $ loop initialization statements
  DOING  blockd  $ step statements at start of loop
  WHILE  testw   $ termination test at start of loop
  STEP   blocks  $ step statements at end of loop
  UNTIL  testu   $ termination test at end of loop
  TERM   blockt  $ loop termination statements
  DO     blockb  $ body of loop
END LOOP

Автор:  Илья Ермаков [ Среда, 18 Март, 2009 17:48 ]
Заголовок сообщения:  Re: Альтернативные циклы

Ужас! И "это нагородили математики"? )) Или "вот до чего доводит слишком долгая возня с теорией множеств"? :))

Автор:  Geniepro [ Четверг, 19 Март, 2009 07:00 ]
Заголовок сообщения:  Re: Альтернативные циклы

И при чём же здесь теория множеств?

Автор:  Trurl [ Четверг, 19 Март, 2009 09:23 ]
Заголовок сообщения:  Re: Альтернативные циклы

Это просто попытка собрать в одной конструкции все виды циклов.
Код:
LOOP WHILE ... DO ... END $ WHILE ... DO
LOOP DOING ... UNTIL ... END $ REPEAT ... UNTIL
LOOP DO ... END $ LOOP ... END
LOOP INIT ... WHILE ... STEP ... DO ... END $ сишный for(...;...;...){...}

Но for сюда не влез.

Автор:  Geniepro [ Четверг, 19 Март, 2009 09:49 ]
Заголовок сообщения:  Re: Альтернативные циклы

У Алгола-68 похожий цикл:

Код:
FOR i FROM 1 BY 1 TO n WHILE TRUE DO print ("a") OD
эквивалентно
Код:
TO n DO print ("a") OD

Автор:  Илья Ермаков [ Четверг, 19 Март, 2009 14:03 ]
Заголовок сообщения:  Re: Альтернативные циклы

Geniepro писал(а):
И при чём же здесь теория множеств?


"При" влиянии на мышление долгой возни исключительно с замкнутыми формальными системами :) Можете подставить вместо теории множеств какую-нить теорию категорий :)

Автор:  Geniepro [ Четверг, 19 Март, 2009 14:43 ]
Заголовок сообщения:  Re: Альтернативные циклы

Илья Ермаков писал(а):
"При" влиянии на мышление долгой возни исключительно с замкнутыми формальными системами :) Можете подставить вместо теории множеств какую-нить теорию категорий :)

А откуда у Вас такие данные, что мол "исключительно с замкнутыми формальными системами"?

Автор:  Илья Ермаков [ Четверг, 19 Март, 2009 18:36 ]
Заголовок сообщения:  Re: Альтернативные циклы

Закавычкано и засмайлено было, наверное, специально, чтобы пришёл наш Гений-про и домахался, "как пьяный до радио..." :)

Но... "в каждой шутке есть доля шутки". В частности, многие ФП-шные активисты названной бедой сильно страдают. А потом другие им в рот смотрят и говорят "вах, как круто".

Автор:  Geniepro [ Пятница, 20 Март, 2009 11:14 ]
Заголовок сообщения:  Re: Альтернативные циклы

Ваша правда, Лья-ер, ваша правда...

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/