Многие операции меняют состояние программы через присваивание, приведение и т.д.
Меняют ли состояние программы операции ветвления (условные операторы)? Или они просто переводят, в зависимости от некоторых условий, в одну из частей общего состояния?
Я так пониманию состояние программы это вся совокупность вычисляемых и/или используемых значений, потенциально изменчивых и/или постоянных в данный момент работающей программы. Могу конечно ошибаться.
Ответ
Текст программы лучше всего представить себе в виде набора пересекающихся дорог, а состояние выполняющего эту программу процесса — как машину, едущую по этим дорогам.
При этом ветвлениям соответствуют развилки дорог, циклам — круговое движение, и т. д. Любая операция есть продвижение машины по дороге, ветвление — выбор одной из дорог на развилке и продвижение по выбранной дороге.
Таким образом, ветвление не есть состояние, это лишь свойство «дорожной сети», её форма. А вот прохождение программой ветвления, как и любая другая операция, изменяет положение машины на дороге, то есть, состояние программы.
Комментариев нет:
Отправить комментарий