Структурированные схемы



 

Возрастающая сложность программ привлекает все большее внимание к проблемам технологии программирования. Технологические соображения заставили, в первую очередь, пересмотреть принципы организации программ, их структуру. Дейкстра первым высказался против неупорядоченного использования переходов на метки, которое может привести и фактически приводит к переусложнению структуры программы, затрудняющему ее понимание и декомпозицию на более простые фрагменты. Реализуя концепцию так называемого структурированного программирования, он предложил, отказаться от использования переходов и ограничиться более дисциплинирующими средствами управления вычислениями, такими, как условные операторы и операторы цикла.

Класс c труктурированных схем Y (S) определяется в том же (полном) базисе В, который был введен для ССП Y.

Различие между Y и Y (S) проявляется на уровне структур схем. Вместо специальных символов Y вводятся специальные символы: if, then, else, while, do, end. Вместо инструкций с метками вводятся три типа схемных оператора в базисе В: простой оператор, условный оператор и оператор цикла.

Простой оператор — это начальный (заключительный) оператор и оператор присваивания.

Условный оператор — это оператор вида

if p then s1 else s0 end,

где p — логическое выражение, s1, s0 — последовательности (может быть, пустые) операторов, среди которых нет ни начального, ни заключительного.

Операторы цикла имеют вид

while p do s end или until p do s end,

где p, s имеют тот же смысл, что и выше.

Ниже приведен пример эквивалентных схем Y и Y (S).

Стандартная схема программ Y Структурированная схема программ Y (S)
start(х), 1: y:= f (x), 2: if p (y) then7 else 3, 3: y:= f (y), 4: if p (y) then 5 else 7, 5: if p (x) then 6 else 7, 6: x:= h (x) goto 5, 7: stop(х, y). start(х), y:= f (x), if p (y) thenelse y:= f (y), if p (x) then while p (x) do x:= h (x)end else end end, stop(х, y).

Структурированные программы универсальны в том смысле, что набора предоставленных им средств достаточно для описания любой вычислимой функции. Задача автоматического преобразования стандартных схем в структурированные имеет отрицательное решение. Доказано, что класс Y мощнее класса Y (S), т.е. схемы Y (S) транслируемы в Y, но не наоборот.

Усилить класс Y (S) можно за счет усложнения логических выражений в условных операторах и операторах цикла Y (SL), введением символов логических операций NOT, OR, AND и атомарных формул, которыми являются логические выражения в старом смысле, например:

NOT p (x) AND q (y,x);

p (g (x, t)) OR q (h (x), x).

В этом случае справедлива

Теорема (Ашкрофт - Манн) Класс стандартных схем Y транслируем в класс схем с логическими операциями Y (SL).


Дата добавления: 2015-12-20; просмотров: 15; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!