Файл: Зайцев Н.Г. Информационное и математическое обеспечение АСУП.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 15.07.2024
Просмотров: 95
Скачиваний: 0
собой специальную программу, которая анализирует слова и знаки программы, написанной на языке «Кобол», и создает новую программу на внутреннем языке системы программирования, принятой для машины. Одной коман де в языке «Кобол», а иногда даже одному слову или знаку часто соответствует большое число машинных команд. В функцию транслятора входит определение са мих команд и объединение их в новую программу. Вна чале в машину вводят транслятор, а затем — исходную программу, написанную на языке «Кобол». Транслятор анализирует ее и создает рабочую программу, записан ную на языке данной машины на магнитной ленте или отперфорированную на картах. После того, как рабочая программа подготовлена, она может быть помещена в машину либо может храниться во внешней памяти для использования ее в будущем. Перед выполнением рабо чую программу надо вновь поместить во внутреннюю па мять машины, после чего система готова для обработки данных.
Так как рабочая программа — это программа на язы ке машины, транслятор должен учитывать оперативные характеристики машины и возможности имеющейся аппа ратуры. Каждая машина отличается некоторым образом от других машин этого же типа. Например, число блоков магнитной ленты, предназначенных для хранения дан ных, может меняться как из-за изменения числа действи тельно установленных блоков, так и из-за изменения числа блоков, отведенных для данной работы. Из этого следует, что транслятор необходимо снабдить некоторой основной информацией об имеющейся в наличии аппа ратуре. Это делается путем записи соответствующей информации в разделе «Оборудование».
Идеи, положенные в основу структуры раздела «Дан ные», во многом определяют ценность языка «Кобол». Понятия этого раздела можно с успехом использовать при описании абсолютного большинства задач и про грамм, входящих и составляющих структуру* АСУП.
В разделе данных приводится полное описание всех объектов, с которыми будет оперировать рабочая про грамма. В специальных статьях описания записи опреде ляются размеры данных, иерархические связи между ни ми (т. е. отношеия подчиненности), классы информации (буквенная или числовая), особенность размещения
60
в памяти, конкретные значения данных (если они известны).
Отдельные объекты можно объединять в группы, те — в свою очередь и т. д., образуя сложную многоуровневую иерархию. Для указания этой иерархии в языке «Кобол» введена специальная статья, называемая номером уров ня данного. Данное, имеющее минимальный уровень 01, определяет высший уровень иерархии, называемый записью. Ряд записей может входить в массив, наимено ванию которого приписан специальный номер уровня ОМ. Любое данное, входящее в состав некоторого другого дан ного, имеет больший номер уровня.
Примером такого описания данных является следую
щее: 01— данные |
работников; |
02 — личные данные; |
||
03 — фамилия; 03 — имя; |
03— отчество; |
03 — дата |
||
рождения; 04 — месяц; 04 — год |
рождения: |
02 — долж |
||
ность; 02 — зарплата. |
определяет, что |
некоторая |
||
Номер уровня 01 |
и т. д. |
запись, называемая «Данные работников», содержит в качестве подразделов: личные данные, должность и зар плату (номера уровней 02). В свою очередь, личные дан ные подразделяются на фамилию, имя, отчество и дату рождения (уровень 03), а дата рождения делится еще на месяц и год рождения (уровень 04). Приведенное описа ние характеризует данные, которые включаются в доку мент следующего вида:
Данные работников
|
Личные данные |
|
|
|
|
|
Дата рожде |
Зар |
|
|
|
ния |
Долж |
|
Фамилия |
Имя |
Отчество |
ность |
плата |
|
|
|||
|
|
Месяц |
Год |
|
1 |
|
1 |
|
|
Как видно, аппарат описания данных содержит необ ходимые понятия для выражения сложных иерархических табличных структур, и этот аппарат необходимо взять на вооружение при разработке МО АСУП.
Основными единицами информации, описываемыми в разделе «Данные», являются: элемент данных, запись.
91
массив. Иерархия представления данных в языке «Кобол» может быть представлена следующей схемой:
|
|
Данные |
|
|
|
Массив |
Другие |
|
|
массивы |
|
|
|
|
|
|
|
Запись |
Другие |
|
|
|
записи |
|
Группа элементов |
Другие |
|
|
|
|
группы |
Элемент данных |
Другие |
|
|
|
|
элементы |
|
Сим |
Другие |
|
|
вол |
С И М В О Л Ы |
|
|
Размер и структуру каждого элемента данных можно задавать так называемым шаблоном, который состоит из знаков: X — любой символ; А — символ буквы; 9 — сим вол цифры; В — пробел и т. д. При помощи шаблона точно описывают внутреннюю структуру и размер каж
дого элемента данных. Так, описание «02 |
год рождения |
шаблон 9999» определяет, что элемент |
данных — год |
рождения состоит из четырех цифр. Шаблон XX 9АА ука зывает, что значение содержит два любых символа, циф ру и две буквы.
Все понятия и идеи, заложенные в основу раздела данных, могут быть успешно использованы при описании данных, относящихся к производственно-хозяйственной деятельности. Поэтому при построении программ МО АСУП их следует широко применять.
Раздел «Процедуры» в программе, записанной на языке «Кобол», состоит из ряда предложений. Предло жение составляют из одного или нескольких предписа ний. Предписание состоит из отдельных операторов, каждый из которых состоит из операции, выражаемой глаголом (или знаком действия), и операндов. Группы последовательно записанных предложений можно объеди нять в параграфы и секции. Каждому параграфу или секции присваивается название (метка), которое запи сывается перед первым предложением соответствующего параграфа или секции и после которого ставится точка.
'92
К параграфу относятся все предложения, которые за писываются после его названия, вплоть до названия следующего параграфа или секции либо конца раздела процедур. К секции относятся все предложения, записан ные после ее названия, вплоть до названия следующей секции или конца раздела процедур. Секция может раз деляться на параграфы. Имена секций и параграфов используют в операторах перехода для указания места в программе, к которому осуществляется переход. Таким образом, переходы возможны только к началам секций и параграфов, так как остальные предложения не имеют названий. Каждый оператор, к которому необходимо за писать обращение, должен быть назван как начало пара графа или секции.
Структура построения раздела процедур может быть представлена следующей схемой:
|
|
Раздел |
процедур |
|
|
Секция |
Другие |
|
|
|
секции |
|
Параграф |
Другие |
|
|
|
|
параграфы |
|
Предложение |
|
Другие |
|
|
предло |
|
|
|
|
жения |
Предписа ние |
Другие |
|
|
предпи |
|
||
|
|
сания |
|
Опера |
Другие |
|
|
тор, |
|
|
|
one* |
операторы |
|
|
ранды |
|
|
|
В языке «Кобол» имеется определенный набор допу стимых операторов, каждый из которых обозначается определенным глаголом.
Ниже приводится список основных глаголов языка «Кобол»:
Программные глаголы Открыть
Читать Ввод ■ вывод Писать
Закрыть
93
Переместить Просмотреть | Обращение с данными Вычислить
Перейти
Выполнить J Управление последовательностью Остановить
Выйти
> Процессорные глаголы
Отметить
Каждый глагол в языке «Кобол» имеет один или не сколько постоянных форматов или контекстов, в которых его можно употребить. Формат указывает на организа цию (структуру) оператора, состоящего из глагола и операндов. Операнды могут представлять как назва ния данных и как литералы. Название данных являетс-я аналогом условного адреса, применяемого при програм мировании в условных адресах, а литералы — букваль ным выражением той величины, над которой надо выполнить то или иное преобразование.
Обслуживающие программы. Основными задачами обслуживающих программ являются следующие:
запись программы в библиотеку; внесение изменений в программу; исключение программы из библиотеки;
перезапись программ с одного магнитного носителя на другой;
печать и вывод на перфоноситель требуемой про граммы;
сборка программ в сегменты; вызов нужных программ в процессе работы в опера
тивную память и настройка ее по месту размещения. Записывает (или исключает) программы в библиоте
ку программа ведения библиотеки.
Вносить изменения в программу, как правило, целе сообразно на входном языке программирования. Для этого необходимо предусмотреть средства, позволяющие вводить коррективы в программу, написанную на вход ном языке. Любая процедура изменения заключается в выполнении следующих операций: вставки в имеющийся текст в заданное место строки произвольной длины; уда ления из текста строки произвольной длины; замены в тексте одной строки другой (однако замена может быть выполнена и последовательностью двух предыдущих операций: удаления и вставки).
94
В процессе эксплуатации возникает необходимость в переписке программ с одного магнитного носителя на другой, а также на перфоноситель или на печать для контроля и распространения. Эти функции выполняются программами дублирования и вывода программ.
При сборке программ в сегменты требуется найти нужные программы в библиотеке и объединить их вместе. При этом необходимо предусмотреть возможность раз мещения собранного сегмента в любом месте оперативной памяти. Поэтому сегмент собирается на языке загрузки. При сборке осуществляется также распределение памяти между составляющими областями различных программ. Программы, к которым обращаются несколько программ, должны быть включены в сегмент только один раз. Особое место должно быть выделено общему для всех программ полю, через которое осуществляется передача информации между программами.
Последовательность работ при сборке программ опре деляется задачами сборки и состоит из следующих операций: поиска указанных программ; распределения памяти между ними; объединения программ в заданный сегмент; подготовки и печати протокола сборки.
Вызов программ в процессе работы в оперативную память и настройка их по месту размещения осущест вляется программой загрузки, являющейся частью машинной диспетчерской программы.
Отладочные программы. Программы, предназначен ные для решения задач в АСУП, характеризуются большим объемом (сотни и тысячи команд) и имеют достаточно сложное логическое построение. Составить такую программу без ошибок нельзя, а обнаружить допу щенные ошибки в процессе отладки в сложных програм мах непросто. Для повышения эффективности отладки необходимо иметь четкую методику и соответствующие программные средства.
Прежде всего, укажем, что ошибки в программах, введенных в машину, целесообразно разделить на три группы: алгоритмические; ошибки перфорации; про
граммные.
Алгоритмические ошибки представляют собой ошиб ки в программной трактовке алгоритма, например недо учет всех вариантов работы алгоритма. Они могут быть обнаружены только при решении контрольных задач,
95
при работающей программе. Методы устранения таких ошибок определяются содержательной сущностью алго ритма.
Программные ошибки являются собственно ошибками программирования, и именно их наличие не дает возмож ности получить правильный результат, несмотря на отсутствие алгоритмических ошибок. Поскольку про граммные ошибки обусловлены особенностями програм мирования, можно указать пути их устранения.
Ошибки перфорации обнаруживают визуальным сравнением оригинала с введенной в машину, а затем отпечатанной программой. Не обнаруженные при этом ошибки перфорации могут трактоваться как программ ные, которые необходимо обнаружить в процессе отладки.
Программные ошибки в зависимости от типа можно разделить на три группы: ошибки в командах; ошибки в распределении памяти; ошибки в определении хода про граммы.
Ошибки в командах возникают из-за ошибок в выбо ре кода операции (особенно модификаций ее), в указа нии адресов и параметров команды (константы сдвига, переадресации и т. п.), наконец, просто из-за описок. Кстати говоря, не обнаруженные ошибки перфорации могут рассматриваться именно как описки. Ошибки этой группы эффективно обнаруживаются имитацией выполнения команд программы с выдачей на печать результатов выполнения отдельных тактов каждой команды.
Ошибки в распределении памяти возникают при работе больших программ или программ, обрабатываю щих большие объемы информации, когда может оказаться недостаточным объем оперативной памяти. Это приво дит к необходимости использования одного и того же массива рабочих ячеек для хранения различной инфор мации на разных этапах работы программы. Особенно это относится к специальным рабочйм ячейкам, напри мер индексным, фиксированным входным и выходным ячейкам подпрограмм и т. д. В этом случае информация, получаемая на первых этапах работы программы, долж на сохраняться для использования на последующих эта пах ее работы, но стирается в момент работы програм мы на промежуточных этапах. Для обнаружения ошибок
9 6
этой группы перед выполнением очередного этапа работы программы следует осуществлять выборочную печать рабочих ячеек, используемых многократно.
Ошибки в определении хода программы возникают вследствие несоблюдения всевозможных логических усло вий при условных переходах, которых в программах обработки информации может быть очень много. Чтобы их обнаружить, необходимо печатать информацию о переходах, тем самым как бы фиксируя ход програм мы. По этой печати уже легко находить ошибки в переходах.
В соответствии с изложенным целесообразно принять следующую последовательность отладки программ, (^перфорированную программу вводят в машину, и она выводится на печать. По полученному тексту устраняют ошибки перфорации. После этого необходимо обнару жить ошибки в ходе программы, особенно для устране ния «зацикливаний» (бесконечного повторения одного и того же цикла). Добившись удовлетворительного хода программы, можно приступить к обнаружению ошибок второй группы. Наконец, обнаруживают ошибки в рас пределении памяти. Не следует упрощенчески подходить к рассмотренной последовательности отладки. На каж дом этапе отладки можно искать ошибки всех трех групп. Но основная последовательность отладки должна быть именно такой.
Анализ результатов, получаемых при работе отлажи ваемой программы, производит программист. Однако всю информацию, характеризующую тот или иной этап отладки, необходимо получать автоматически. Для этого вычислительная машина должна иметь отладочную про грамму, выдающую те и только те результаты, которые в данный момент нужны программисту.
Работа машины в системном режиме, когда она должна быть все время в оперативной готовности для выполнения поступающих заданий, исключает ручную отладку программ с пульта машины, да это и неэффек тивно. Потребность же в машинном времени для отлад ки, особенно на первых этапах внедрения системы, ве лика. Поэтому необходимо предусмотреть возможность выполнения отладки в таком же режиме по заданиям, как и рабочих программ системы. Для этой цели преду сматривается программа автоотладки, содержащая про граммные возможности для выдачи информации об
3-2456 |
9 7 |
|