Zahns construct - Википедия - Zahns construct

Конструкция Зана, в Информатика, была предложена структура для структурированных поток управления в языках компьютерного программирования, впервые описанных Чарльз Т. Зан в 1974 г.[1] Конструкция в первую очередь описывается как расширение циклические конструкции распознавать несколько способов завершения цикла. Например, цикл поиска может прерваться раньше, когда цель будет найдена; или он может прекратиться после неудачного завершения поиска. Конструкцию Зана можно использовать, чтобы избежать ИДТИ К заявления при определении того, какой случай был обнаружен. Зан делает это, вводя новый вид переменной, называемой индикатор ситуации в CASE-подобной конструкции, следующей за циклом.

Дональд Кнут в своей статье «Структурированное программирование с помощью операторов перехода»,[2] описывает две формы конструкции Зана следующим образом:

цикл до <ситуация 1> или ... или <ситуация n>: <список операторов 0> повторение; затем <ситуация 1> => <список операторов 1>; ... <ситуация n> => <список операторов n>; fi

и:

начинать до <ситуация 1> или ... или <ситуация n>: <список операторов 0>; конец; затем <ситуация 1> => <список операторов 1>; ... <ситуация n> => <список операторов n>; fi

Также должен быть оператор для установки конкретного индикатора ситуации и выхода из тела конструкции.

Следующий простой пример включает поиск определенного элемента в двумерной таблице.

выход когда найденный или же отсутствующий; за I: = 1 к N делать        за J: = 1 к M делать            если таблица [I, J] = цель тогда найденный; отсутствующий;выходы    найдено: print («элемент находится в таблице»); отсутствует: print («товар отсутствует в таблице»);endexit;

Блоки try-catch, используется в современных языках программирования для Обработка исключений, являются вариациями конструкции Зана. Основное отличие состоит в том, что объем предложений Зана ограничивался отдельными циклами в программе, тогда как возможности обработки исключений часто позволяют «выбросить» исключения из глубины стек вызовов и "поймали" в точке выше в стеке.

Рекомендации

  1. ^ Зан, К. Т. «Управляющее выражение для естественного нисходящего структурированного программирования», представленное на симпозиуме по языкам программирования, Париж, 1974.
  2. ^ Кнут, Д. Э. «Структурированное программирование с помощью операторов перехода» В архиве 2013-10-23 на Wayback Machine, Вычислительные опросы, Том 6, декабрь 1974 г., стр. 275

внешняя ссылка