Cтраница 1
Элементарные программы IPL строят списковые структуры, воспроизводят их, стирают или переводят во внешние запоминающие устройства как единое целое. Существуют также программы, позволяющие просматривать списковые структуры и обрабатывать их иными способами. [1]
Иерархия элементарных программ, составляющих сложную программу, может быть определена путем анализа элементарных пра-грамм - процесса повторяющихся выделений и замещений элементарных программ новыми функциональными узлами до тех пор, пока не останется ни одной незамещенной элементарной программы. Для ускорения анализа последовательность из любого числа функциональных узлов может быть замещена одним функциональным узлом. На каждом шаге анализа определяются элементы анализа, которым ставятся в соответствие новые поименованные функциональные узлы, в результате чего получается упрощенная программа. На последнем шаге анализа результирующий элемент анализа сводится к одному функциональному узлу - это высший уровень абстракции управляющей структуры. Блок-схема программы, показанная на рис. 4.25, преобразуется в один функциональный узел за шесть шагов анализа ( исключительно простого, чисто механического процесса), которые показаны ниже. [2]
Комментарии элементарных программ определяют элементарные программы или их части, к которым комментарии приписаны. Примеры записи комментариев рассматриваются ниже. [3]
Набор элементарных программ, которые вычислительная машина может выполнять без дополнительной расшифровки. [4]
Комментарии элементарных программ языка PDL бывают двух типов: комментарии действия ( называемые иначе функциональными комментариями), которые поясняют программные функции, и комментарии состояния, описывающие предикаты от состояния данных. Комментарии действия могут предшествовать любой элементарной программе, а также then - и else - частям разветвляющихся программ и do - частям циклических программ. Комментарии состояния имеют отношение к участкам программы, которые формируют состояния данных, и представляют собой предикаты от состояния данных, полученных в результате выполнения операторов языка PDL. Комментарии состояния следуют за последовательными, разветвляющимися или циклическими элементарными программами. [5]
Оказывается, что элементарная программа, в частности элементарная программа языка PDL, является идеальной программной единицей для абстракции. Хотя элементарные программы языка PDL могут содержать последовательность, разветвление и цикл, их действия по отношению к результатам выполнен-ия программы являются внутренними и могут отображаться изменением данных на выходе программы. Абстракция описывает только действия над данными н не более того. [6]
Каждое базисное множество элементарных программ позволяет создавать конкретный класс составных программ, являющихся подмножеством всех возможных простых программ. Некоторые из этих классов составных программ являются подмножествами других. Структурированной программой называется составная программа, сформированная на основе фиксированного базисного множества элементарных программ. [7]
Рассмотрим доказательство правильности элементарных программ на примерах программ, оперирующих скалярными данными. Структуры типа fordo и case обсуждению не подлежат. Доказательство для структуры fordo было рассмотрено выше, а доказательство для структуры типа case является простым обобщением доказательства правильности программы типа ifthenelse. Доказательство правильности программ, использующих данные в виде массива и непоименованные данные, рассматриваются в следующем разделе. Доказательства удовлетворяют верификационным требованиям, определенным теоремой правильности, и записываются в соответствии с синтаксисом доказательства ( см. разд. Чтобы полнее проиллюстрировать оба систематических метода записи данных в трассировочные таблицы и применение логических правил рассуждения, доказательства записываются со всеми синтаксическими и логическими подробностями. Полная правильность доказывается для каждой программы, за исключением программы типа dowhiledo, при доказательстве которой обнаруживается ошибка в программе. [8]
Результаты дальнейших исследований Элементарной программы восприятия и запоминания ( ЕРАМ) 1); новая интерпретация в рамках теории многоуровневой памяти человека; обобщение Хинтцмана, расширяющее набор объяснимых феноменов. [9]
Целью нашего рассмотрения больших ациклических элементарных программ, подобных указанной здесь, является то, что рациональные методы рассуждения в случае необходимости можно использовать для анализа таких программ. [10]
Комментарии элементарных программ определяют элементарные программы или их части, к которым комментарии приписаны. Примеры записи комментариев рассматриваются ниже. [11]
Покажите, что две различные элементарные программы обшей программы, рчапеленные по юряйней мере одним предикатом, являются непересекающимися. [12]
Вспомним, что анализ элементарных программ может быть выполнен как ряд этапов упрощения блок-схемы, причем элементы, имеющиеся на каждом этапе, абстрагируются в новые функциональные узлы. Как и прежде, последовательности более чем двух функциональных узлов будем анализировать на одном этапе. Как можно видеть из рис. 5.13, для упрощения программы Singsort до отдельного функционального узла требуется восемь этапов. За каждым номером узла записывается число функциональных или предикатных узлов, которые были абстрагированы в новый узел. Каждая последующая абстракция включает не более 33 узлов, содержащихся в блок-схеме, приведенной на рис. 5.12. Этот процесс абстрагирования представляет собой простое, механически выполняемое упражнение. Он не требует специальных знаний или рассуждений, достаточно лишь просмотреть блок-схему и отобрать элементы. [13]
Если Р не является элементарной программой, то благодаря использованию ее алгебраической структуры возможна декомпозиция Р на элементарные составляющие. В частности, иерархическое построение программы Р позволяет разложить доказательство правильности Р на доказательства правильности элементарных составляющих программ, находящихся на соответствующих уровнях иерархии. [14]
Покажите, что имеется 30 структур элементарных программ с 5 узлами. Подобный пример с 16 управляющими структурами с двумя предикатными узлами и без функциональных узлов приводился в упражнениях к разд. [15]