Cтраница 2
Отметим, что описанный аппарат версий оказывается чрезвычайно полезным при отладке программ. Простое задание соответствий между функциональными и архивными именами позволяет сгенерировать программу, составленную из любой требующейся для отладки комбинации имитирующих ( заглушек), отлаживаемых и отлаженных модулей. [16]
Сформированная задача печатает тексты модулей в том порядке, в котором они перечислены в пункте PRINT. Перед каждым текстом печатается заголовок, где указывается архивное имя модуля, его тип, шифр записавшего его пользователя, дата последнего изменения модуля и использованный в нем признак управляющего предложения. Все предложения текста модуля для удобства последующего редактирования снабжаются номерами. [17]
В расчетах, выполняемых в настоящее время с помощью системы САФРА, используется обычно от 50 до 150 модулей. Конечно, явное выписывание всех необходимых для них соответствий между функциональными и архивными именами в теле формирующей расчетную задачу операции EXECUTE довольно обременительно. [18]
Операция EXECUTE предназначена для сборки из модулей программного фонда программы конкретного расчетного варианта и передачи ее на выполнение. Для определения расчетного варианта необходимо задать соответствия между функциональными именами, включенными в схему счета, и архивными именами модулей, требующихся для данного расчета. МАТСН-предло-жений, и составляют тело пункта EXECUTE. Выполнение пункта заключается в том, что на основе заданных соответствий функциональных и архивных имен генерируется текст расчетного задания. Последнее запускается на счет в виде самостоятельной задачи для операционной системы. [19]
Определяется архивное имя, соответствующее функциональному имени, записанному в I-предложении. Если в теле пункта EXECUTE ( с учетом всех упомянутых в нем модулей типа версия) отсутствуют МАТСН-предложения с данным функциональным именем в левой части, в качестве архивного имени берется функциональное имя. Если такие МАТСН-предложения есть, среди них выбирается последнее, и в качестве архивного имени берется архивное имя, записанное в его правой части. [20]
В приведенных выше операторах список переменных содержит указатели отдельных переменных, каждый из которых включает стандартное имя переменной и его архивное имя. Если архивное имя записываемой переменной совпадает со стандартным, то оно может не указываться. Во временном архиве архивное имя не указывается, поскольку оно всегда считается совпадающим со стандартным. [21]
Отметим, что текст, соответствующий исходным данным, используемым в расчетной задаче, также формируется из текстов архивных модулей. Как и любая другая часть задания, исходные данные могут обладать достаточно сложной организацией, основанной на использовании I-предложений. В этом случае к ним применим весь аппарат функциональных и архивных имен. [22]
Определяется архивное имя, соответствующее функциональному имени, записанному в I-предложении. Если в теле пункта EXECUTE ( с учетом всех упомянутых в нем модулей типа версия) отсутствуют МАТСН-предложения с данным функциональным именем в левой части, в качестве архивного имени берется функциональное имя. Если такие МАТСН-предложения есть, среди них выбирается последнее, и в качестве архивного имени берется архивное имя, записанное в его правой части. [23]
Определяется архивное имя, соответствующее функциональному имени, записанному в I-предложении. Если в теле пункта EXECUTE ( с учетом всех упомянутых в нем модулей типа версия) отсутствуют МАТСН-предложения с данным функциональным именем в левой части, в качестве архивного имени берется функциональное имя. Если такие МАТСН-предложения есть, среди них выбирается последнее, и в качестве архивного имени берется архивное имя, записанное в его правой части. [24]
Тело пункта CATALOG пусто. В результате выполнения этого пункта на листинге задания вслед за заголовком пункта CATALOG в алфавитном порядке ( сначала русские, а затем латинские буквы) печатается список хранящихся в архиве модулей. Каждому модулю соответствует одна строка каталога. В ней, кроме архивного имени, печатаются следующие данные: тип модуля; шифр пользователя, создавшего модуль; признак, с которым создан модуль; число строк в модуле; число блоков памяти или количество слое памяти БЭСМ-6, занимаемых модулем; дата создания модуля; дата и время последнего изменения ( редактирования) модуля; дата последнего использования модуля. Кроме того, распечатываются дата печати каталога и номер тома, по которому расположен архив. В конце выдается сводная информация о состоянии архива. [25]
Операция EXECUTE предназначена для сборки из модулей программного фонда программы конкретного расчетного варианта и передачи ее на выполнение. Для определения расчетного варианта необходимо задать соответствия между функциональными именами, включенными в схему счета, и архивными именами модулей, требующихся для данного расчета. МАТСН-предло-жений, и составляют тело пункта EXECUTE. Выполнение пункта заключается в том, что на основе заданных соответствий функциональных и архивных имен генерируется текст расчетного задания. Последнее запускается на счет в виде самостоятельной задачи для операционной системы. [26]