7.3. ЛОГИЧЕСКАЯ СТРУКТУРА ЦИКЛА
345
Выделенный наклонным шрифтом цикл не связан с каким-либо потоком,
но, тем не менее, он выполняется определенное число раз тогда, когда зна-
чения переменных
a, x, imi
и
ima
удовлетворяют условиям, заданным в заго-
ловке цикла и во внутренних условных операторах.
На рассмотренном примере мы выделяем важное неформальное понятие.
Фрагмент программы выполняется в некоторой обстановке,
состоящей из тех данных, которые:
a) определяют поведение выполнения фрагмента, и
b) изменяются при выполнении фрагмента.
(7.6)
Эти два признака характеризуют понятие обстановки. В частности, локаль-
ные данные, возникающие и исчезающие вместе с фрагментом, не являются
элементами его обстановки. Не следует включать в обстановку и то, что не
является формально необходимым, даже если содержательный смысл фраг-
мента при его удалении страдает.
17
Применительно к выделенному фрагмен-
ту программы 7.3.2 это переменная
h
. С одной стороны, она не обладает са-
мостоятельным формальным смыслом, а с другой — ее использование как
среднего арифметического
imi
и
ima
облегчает понимание смысла выделен-
ного фрагмента. Сами переменные
imi
и
ima
можно рассматривать или с ло-
кальной точки зрения, внутри одной итерации, и тогда тело цикла трактуется
как поиск x среди элементов массива
a[imi],..., a[ima]
; или глобально, инте-
ресуясь их предельными значениями, и тогда весь цикл трактуется как поиск
x среди элементов массива
a[0],..., a[SZA]
.
В обстановку могут входить и призраки, например, оценка числа остав-
шихся шагов цикла с предусловием.
Обычно в языках программирования нет средств явного указания обста-
новки фрагментов программ, поскольку данное понятие остается неуточнен-
ным до конца. В какой-то мере суррогатом обстановки являются правила ло-
кализации имен, задающие контексты фрагментов программы. Дадим неко-
торые формальные определения, связанные с контекстами.
Определение 7.3.2. Локальным контекстом фрагмента программы назы-
вается совокупность всех локальных описаний констант, переменных и дру-
гих имен, записанных в данном фрагменте.
17
Еще раз напомним, что часто содержательный смысл фиксируется при помощи призра-
ков.