Jump to content

Алгоритмическая отладка программы

Алгоритмическая отладка (также называемая декларативной отладкой ) — это метод отладки , который сравнивает результаты дополнительных вычислений с тем, что задумал программист . Этот метод создает внутреннее представление всех вычислений и подвычислений, выполненных во время выполнения программы с ошибками , а затем запрашивает программиста о правильности таких вычислений. Задавая программисту вопросы или используя формальную спецификацию , система может точно определить, где в находится . программе ошибка Методы отладки могут значительно сократить время и усилия, затрачиваемые на отладку .

Отладка программ — чрезвычайно распространенная часть разработки программного обеспечения. До 1980-х годов искусство отладки программ, которым занимался каждый программист, не имело никакой теоретической основы. [1] В начале 1980-х годов были разработаны системные и принципиальные подходы к отладке программ. Как правило, ошибка возникает, когда у программиста есть определенное намерение относительно того, что должна делать программа, однако фактически написанная программа демонстрирует поведение, отличное от предполагаемого в конкретном случае. Одним из способов организации процесса отладки является его автоматизация (по крайней мере частично) с помощью алгоритмической техники отладки. [2] Идея алгоритмической отладки состоит в том, чтобы иметь инструмент, который интерактивно направляет программиста в процессе отладки: он делает это, задавая программисту вопросы о возможных источниках ошибок. Методика алгоритмической отладки создает внутреннее представление всех вычислений и подвычислений, выполняемых во время выполнения программы с ошибками (дерево выполнения). Затем он спрашивает программиста о правильности таких вычислений. Программист отвечает «ДА», если результат правильный, или «НЕТ», если результат неправильный. Некоторые алгоритмические отладчики также принимают ответ «Я не знаю», когда программист не может дать ответ (например, потому что вопрос слишком сложен). Таким образом, ответы программиста направляют поиск ошибки до тех пор, пока она не будет изолирована путем отбрасывания правильных частей программы. Процесс алгоритмической отладки находит одну ошибку за раз. Чтобы найти разные ошибки, процесс следует перезапускать заново для каждой отдельной ошибки.

Истоки, текущие и будущие направления

[ редактировать ]

Алгоритмическая отладка была впервые разработана Эхудом Шапиро во время его докторской диссертации в Йельском университете, как описано в его докторской диссертации: [3] выбран в качестве выдающейся диссертации ACM 1982 года. Шапиро реализовал метод алгоритмической отладки на Прологе. [4] (язык логического программирования общего назначения) для отладки логических программ . В случае логических программ предполагаемое поведение программы представляет собой модель (набор простых истинных утверждений), а ошибки проявляются как неполнота программы (неспособность доказать истинное утверждение) или некорректность (способность доказать ложное утверждение). Алгоритм выявит ложное утверждение в программе и предоставит ему контрпример или отсутствующее истинное утверждение, которое следует добавить в программу. Также был разработан метод обработки незавершенного завершения . Исследования и разработки в области алгоритмической отладки позволили существенно улучшить исходные алгоритмы отладки Пролога и других, а также распространить эти идеи на другие языковые парадигмы, такие как функциональные языки и объектно-ориентированные языки . [5] Спустя три десятилетия с момента своего появления алгоритмическая отладка по-прежнему остается активной областью исследований в области информатики. [6] и, вероятно, останется таковым на протяжении десятилетий, поскольку панацеи не видно.

  1. ^ Сильва, Хосеп. «Обзор стратегий алгоритмической отладки». Достижения в области инженерного программного обеспечения 42.11 (2011): 976-991/
  2. ^ Целлер, Андреас. Почему программы терпят неудачу: руководство по систематической отладке . Эльзевир, 2009./
  3. ^ Шапиро, Эхуд Ю. (1983). Алгоритмическая отладка программы . Кембридж, Массачусетс: MIT Press. ISBN   0-262-19218-7
  4. ^ Клоксин, Уильям Ф. и Кристофер С. Меллиш. Программирование на ПРОЛОГ . Том. 4. Берлин и др.: Шпрингер, 1987.
  5. ^ Нэйш, Ли. Декларативная схема отладки . Кафедра компьютерных наук, Мельбурнский университет, 1995 г.
  6. ^ Кабальеро, Рафаэль, Риеско, Адриан, Сильва, Хосеп. Обзор алгоритмической отладки . Обзоры ACM Computing, том 50, выпуск 4, 2017 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 80b8e72ac53a72b2567b87425cddad3a__1623393420
URL1:https://arc.ask3.ru/arc/aa/80/3a/80b8e72ac53a72b2567b87425cddad3a.html
Заголовок, (Title) документа по адресу, URL1:
Algorithmic program debugging - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)