Реклама:

По всем маршрутам, ведущим из начальной вершины программы в конечную вершину, выполняется контроль наличия запрещенных сочетаний операций по всем наименованиям величин н номерам регистров. Условиями правильной реализации операций являются:

предварительная запись в ячейку оперативной памяти значения считываемой из liée информации;

наличие в индексном регистре значения индекса требуемого наименования;

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

Состояние в этих случаях характеризуется парой: именем (номе-1 ром) ячейки памяти нлн регистра и именем величины, значение которой хранится в ячейке или на регистре. Однократность просмотра достигается выделением в модели программы независимо проверяемых частей и заданием правила упорядоченного просмотра с запоминанием уже проверенных частей программы. Составляются списки операций считывания и записи с указанием имен величин, имен регистров н частей выделенных участков, к которым относятся эти операции. После выделения участков операции считывания и записи перенумеровываются в соответствии с порядком нх следования и принадлежностью командам участков программы. Это делается для удобства просмотра, когда необходимо определять место конкретной операции на участке.

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

существует ли запись этой величины вообще;

на всех ли путях, ведущих ко входам, есть запись соответствующей величины перед считыванием с того же регистра;

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

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

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


⇐ Предыдущая страница| |Следующая страница ⇒