Когда я учился в колледже, у нас была гостевая лекция от Дэвида Парнаса. В нем он упомянул механизм, который используется для гарантии того, что цикл (в то время как цикл, цикл и т. Д.) В какой-то момент безопасно выходит. Он издевался над тем, что никто не знал, что это такое ... грустно, что спустя годы я тоже не знаю. Кто-нибудь знает, что называется этим механизмом?Механизм для обеспечения контура петли
ответ
Судя по его области компетенции (которая включает в себя официальные доказательства правильности), я думаю, что он имел в виду loop variant, что является общей методикой, используемой для доказательства завершения цикла.
Этот вопрос кажется нелогичным.
Существует не один gaurantee, чтобы гарантировать, что петлевые выходы, кроме создания состояния сообщения, которое, как вы знаете, будут удалены, то есть увеличьте счетчик, не дотрагивайтесь до счетчика внутри цикла и не получите максимум для его удара.
Вы также можете создать таймер или другую структуру, чтобы проверить, слишком ли занимает цикл.
Что подразумевал здесь Парнас? Универсальный выход в любой цикл, который не мешает логике или просто конструирует надлежащие условия сообщения?
«создайте условие сообщения, которое, как вы знаете, пострадали», является «одним из гарантов для выхода петли». Во всех случаях это очень простое проектирование. В самом деле, вы ** должны ** разработать условие завершения. –
Есть много способов, чтобы гарантировать, что петля выходит благополучно:
- Не пишите, что это бесконечное
- Остальные оставлены как физические упражнения
Серьезно, лучший это упростить и обеспечить стабильное и полностью протестированное условие завершения (то есть код, который проверяет, должна ли она запускать другую итерацию или выход).
То, что вы описали, вполне может быть переведено в halting problem, что является хорошо известной проблемой без решения.
Кроме того, поиск в Google показывает, что Дэвид Парнас работает в Университете Лимерика, вы можете позвонить им и попросить поговорить с ним. Я уверен, что он был бы рад, вы все еще пытаетесь узнать от того, что он научил тебя тогда :)
+1: Это дисциплина дизайна, обеспечивающая окончание. –
Вашего приглашенного лектора может быть ссылкой на Cycle Detection, способ обнаружения бесконечных циклов.
This blog post описывает обнаружение бесконечных циклов в связанном списке. Интересно, что он использует ту же терминологию, что и статья Википедии.
- 1. Wordpress петли в пределах погрешности контура
- 2. Каков наилучший механизм обновления для приложения для каталогизации программного обеспечения?
- 3. Bash: номер текущего токового контура в команде «для петли»
- 4. несколько переменных для контура питона
- 5. РНР для контура конкатенации
- 6. Получение местоположения пикселя для контура контура matplotlib
- 7. Scale colormap для контура и контура
- 8. Foreach для контура PHP избыточности
- 9. сравнить два файла excel в ssis «Контейнер контура петли»
- 10. конкатенация контура с использованием .concat без использования только петли
- 11. для петли плюс для петли
- 12. избегая контура внутри цикла
- 13. Fibonacci Только для контура
- 14. Laravel для ошибки контура
- 15. для контура глотка, nodejs
- 16. для контура отсутствующего инициализации
- 17. Для контура конечной продукции
- 18. индексирование для контура MATLAB
- 19. Для контура адаптации
- 20. Bash для ошибки контура
- 21. IDL для контура несогласованности
- 22. R: для вывода контура
- 23. Perl для ошибки контура
- 24. Javascript для эффективности контура
- 25. NodeJS для оптимизации контура
- 26. PHP для оптимизации контура
- 27. Для бесконечного контура
- 28. Продолжительность вложенных для контура
- 29. R для оптимизации контура
- 30. Bash для ошибки контура
Я считаю, что это было. спасибо –