OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 21:11

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: Пятница, 08 Июнь, 2018 11:48 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Цитата:
Сейчас подумал про то, что процедуры Condition1, Command1, Condition2, Command2, Condition3, Command3 было бы хорошо сделать вложенными в процедуру Test. НО
Согласен. Тоже думал о том, что ограничение на использование локальных переменных открыло простую возможность использовать вложенные подпрограммы по указателям.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 29 Июнь, 2018 00:37 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Rifat писал(а):
Valery Solovey писал(а):
И вообще, цикл Дейкстры не про случайность выбора веток цикла, а про декларативность.

Дейкстра бы с этим поспорил :)

Может, он бы и поспорил, но приведённый отрывок из книги не противоречит тому, что я сказал, и не подтверждает то, что сказали Вы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 29 Июнь, 2018 10:53 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 987
Откуда: Казань
Может мы по-разному понимаем слово "декларативность". Но я считаю, что дело не только в декларативности, а случайность, то есть недетерминированность играет очень важную роль. Например, на двух процессорах одновременно запускаются две одинаковые задачи. Какая из них раньше закончится, это не известно, на это может влиять много факторов: есть данные в кэше или нет, все данные всегда правильно считываются или когда-то произошла ошибка четности, которую процессор автоматически исправлял. То есть хотя задачи и одинаковые, но результат может быть недетерминирован. Также если, допустим, два процессора одновременно начинают работать, один должен x := 1, а другой x := 2, то какой будет в конце результат не определено, то есть недетерминировано, может быть 1 или 2.

Настоящий недетерминированный цикл Дейкстры должен выдать ответ 1 или 2. А детерминированный цикл Дейкстры, который реализован в Oberon-07, всегда будет выдавать 1.
Код:
{TRUE}
p := TRUE;
WHILE p DO
  x := 1;
  p := FALSE;
ELSIF p DO
  x := 2;
  p := FALSE;
END;
{ (x = 1) OR (x = 2) }


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 29 Июнь, 2018 11:21 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
В настоящем цикле Дейкстры - это некорректный цикл. По крайней мере, он задумывался для возможности прийти к правильному решению разными путями, а не созданию разных решений, в зависимости от непонятно чего. Также, Дейкстра упоминал об альтернативах, как возможности выбора для более эффективного решения для машины. То есть, недетерминированность может существовать в описании, но остутствовать в конечной результате. Недетерминированность из-за этого не исчезает.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 29 Июнь, 2018 12:29 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 987
Откуда: Казань
Comdiv писал(а):
В настоящем цикле Дейкстры - это некорректный цикл. По крайней мере, он задумывался для возможности прийти к правильному решению разными путями, а не созданию разных решений, в зависимости от непонятно чего.

Так это не разные решения :) Может быть, действительно, нужно чтобы x было 1 или 2 и не важно какое именно значение.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 30 Июнь, 2018 01:13 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Вы правильно заметили, что недетерминированность - это неопределённость. Но почему Вы решили, что неопределённость - это случайность - не понятно.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB