<<
>>

Поток управления

Вернемся к обсуждению потока управления в программе. Программа выполняется компьютером в автоматическом режиме. При выполнении программы происходит передача управления отдельным операторам.
Каждый оператор в течение кванта времени управляет компьютером. Говорят, что вычисления задает поток управления в программе.

Поток управления — это последовательность передач управления между операторами. Он задает порядок выполнения операторов.

Программа вводится в компьютер как последовательность строк. Отдельные строки программы могут выполняться неоднократно, приводят к долгим вычислениям. Например, статическая строка for i from 1 to 3 do writeln (i, i * i );

114

Глава 5.
Действия и операторы в программах

вызывает динамические вычисления:

Статический текст программы может значительно отличаться от динамических вычислений, выполняемых при работе программы. Это затрудняет понимание программы, увеличивает возможность внесения ошибки.

Для облегчения понимания операторы императивного языка программирования должны обеспечивать структурированный поток управления.

Структурированным называют поток управления, который удобен для понимания человеком и максимально близок к структуре текста программы.

Программа является структурированной, если ее поток управления очевиден из структуры программного текста.

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

а б в

Рис. 5.1. Формы структурированного потока управления: а — линейная; б — разветвляющаяся; в — циклическая

Средствами обеспечения структурирования являются три структуры управления: композиция, ветвление, цикл [73]:

? Композиция. Эта структура является средством группировки линейной последовательности простых операторов.

? Ветвление. Структура обеспечивает выбор для выполнения одной из нескольких альтернативных последовательностей операторов.

? Цикл. Последовательность операторов может повторяться многократно, ноль или более раз. Ноль означает, что последовательность может быть вообще пропущена.

Составные операторы

115

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

Здесь возникает законный вопрос: не приведет ли использование только таких структур управления к ограничению возможностей программ и программирования как такового? Ответ давался многими исследователями, утверждавшими: ограничения на общность и универсальность решений не возникают! Среди наиболее ярких результатов отметим структурную теорему Бема-Джакопини [53] и теорему о регуляризации алгоритмов выдающегося отечественного ученого В.

М. Глушкова [6].

Впрочем, надо иметь в виду следующее: фактически доказано лишь то, что любую программу можно написать, используя только перечисленные структуры управления. Получаемый результат вовсе не обеспечивает автоматически лучшее решение. Известно, что существует некоторое решение не хуже (а может, и лучше) структурированного результата.

В языках программирования описанные структуры управления реализуются специальным набором операторов управления, которые представляют собой операторы с одной точкой входа и одной точкой выхода [9-12, 17]. Каждый оператор управления может содержать внутренние ветвления и циклы, но передача управления из него к другому оператору происходит только через его единственную точку выхода. Все эти рассуждения ориентированы на поддержку следующего утверждения: порядок выполнения операторов программы должен соответствовать порядку операторов в ее тексте.

<< | >>

Еще по теме Поток управления:

  1. коян: Восходящий узел - включение в общий поток; Нисходящий узел - исключение из общего потока.
  2. Альбатрос (восхождение на поток)
  3. ТЕОРИЯ ПОТОКА СОЗНАНИЯ
  4. 3.9. ПОТОК СОЗНАНИЯ
  5. ПОТОК СОЗНАНИЯ
  6. 2.2.1. Поток образов
  7. Глава 3. ОТКРОЙТЕ СВОЙ ПОТОК ОБРАЗОВ
  8. 12.2.1. Групповой поток образов
  9. Статья 1040. Обращение взыскания на имущество, переданное в управление, по требованию кредитора установщика управления
  10. МИХАЙ ЧИКСЕНТМИХАЙИ. В ПОИСКАХ ПОТОКА, 2015
  11. 13.5.1. Игра в поток образов