Файл: Система математического обеспечения ЕС ЭВМ..pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.10.2024

Просмотров: 80

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

где

( UNIT (х)

SUBCHK (al,a2,...J опция t'= ) TRACE

INIT (kl, k2,...) SUBTRACE

целая константа x — ссылочный номер набора данных для вы­ вода отладочной информации;

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

TRACE — заказ на трассирование меток;

к — имя переменной или массива, все изменения значений ко­ торых прослеживаются и передаются в набор данных х;

SUBTRACE — заказ на трассирование имени данной программ­ ной единицы.

Высказывание

АТ метка

определяет начало того участка программной единицы, где акти­ визирован отладочный пакет.

Включение и отключение трассирования меток производится высказываниями

TRACE ON

И

TRACE OFF

7.2.6. Н-расширения Фортрана IV ОС ЕС

Оптимизирующий компилятор Е[ предоставляет гибкие средства планирования ввода-вывода с помощью высказываний асинхрон­ ного ввода-вывода: READ, WRITE и WAIT.

Асинхронное чтение:

READ (a, ID=k)' список имен массивов

где а — ссылочный номер набора данных; к — целое выражение, идентифицирующее своим значением

данное высказывание. Асинхронная запись:

WRITE (a, ID = к)' список имен массивов

где а и к трактуются так же, как при описании асинхронного чте­ ния.

Асинхронное ожидание:

WAIT (a, ID = k, COND= p, NUM=c) список имен массивов

где а — ссылочный номер набора данных; к — целое выражение, идентифицирующее своим значением

одно из высказываний асинхронного чтения или записи, не обяза­ тельно принадлежащее той же программной единице, что и'WAIT данное высказывание WAIT относится к тому высказыванию REAr или WRITE, которое еще не завершено другим WAIT, имеет то:

184

же идентифицирующий номер и сообщается с тем же набором дан­ ных; по высказыванию WAIT производится приостановка выпол­ нения программы пользователя вплоть до момента завершения операции ввода-вывода соответствующим высказыванием READ

или WRITE;

р — имя переменной, значение которой после выполнения WAIT устанавливается равным 1 при успешном завершении операции ввода-вывода; равным 2 при возникновении состояния ошибки устройства и равным 3 при обращении к записи END OF FILE;

рдолжно быть целым;

с— имя целой переменной, значение которой по завершении WAIT равно числу байтов переданной информации.

Повышенная точность:

во всех вышеописанных декларациях типов, позволяющих ука­ зывать точность, для компилятора Н допускаются указания вида

REAU16

и

COMPLEX*32

Ввод-вывод данных с повышенной точностью производится под контролем спецификации формата Q.

7.3. АЛГОЛ-бО ОС ЕС

Язык Алгол-60 ЕС является представлением реализации под­ множества, рекомендованного ИСО в качестве стандарта языка Алгол-601, расширенным введением декларатора (описателя) CODE. Ниже приводятся ограничения и особенности реализации.

Особенности представления основных символов эталонного язы­ ка связаны с ограниченностью литерного набора стандартных уст­ ройств подготовки данных:

Символы эталонного

48-литерный

59-литерный

языка

 

набор

набор

a . . . г

а . . . Z

A . . . Z

0 ... 9

0 ...

9

0 ... 9

+ —Х Ж =

LESS

у* **=

+ - * / ’/’**=

<

 

<

<

NOTGREATER

< =

>

NOTLESS

> =

GREATER

>

Ф

NOT EQUAL

ч =»

=

EQUIV

EQUIV

гэ

IMPL

AND NOT

IMPL

V А ч

OR

|& '1

0.[• 1 ю'; :=

’POWER’ 1**

 

t

 

Остальные символы эталонного языка, изображаемые жирным шрифтом или подчеркиванием, в Алголе-60 ЕС представляются со-

1 Programming Language ALGOL-60, ISO, Ref. N: ISO/R 1538—1971 (E).

185


ответствующими прописными буквами и заключаются в апостро­ фы: ’GO ТО’, ’BEGIN’ и т. п.

Исключен декларатор own. В качестве меток нельзя использо­ вать целые константы. Формальные параметры должны быть пол­ ностью описаны и совпадать по виду и типу с фактическими пара­ метрами в случае вызова по имени.

Идентификаторы различаются по первым шести литерам, ос­ тальные литеры компилятор игнорирует.

Если тип арифметического выражения нельзя определить ина­ че, как вычислив это выражение или установив тип или значение фактического параметра, то тип принимается REAL.

Высказывание (оператор) GO ТО с неопределенным указате­ лем переключателя имеет неопределенный результат.

Алгольный компилятор и ОС ЕС дают возможность сепа­ ратной трансляции отдельных процедур, которые могут быть затем объединены в единую рабочую программу. Процедура, предназна­ ченная для сепаратной трансляции, не должна заключаться в скобки BEGIN и END.

В вызывающей программе предварительно оттранслированная процедура должна быть декларирована заголовком процедуры и подставленным вместо тела процедуры декларатором CODE.

В дополнение к процедурам ввода-вывода:

INSYMBOL,

OUTSYMBOL,

INREAL,

OUTREAL,

INARRAY,

OUTARRAY,

в Алголе-60 ЕС введены дополнительно следующие процедуры ввода-вывода:

IN1NTEGER,

— для целых величин;

OUTINTEGER

 

1NBOOLEAN,

— для булевых величин;

OUTBOQLEAN

 

1NTARRAY,

— для целых массивов;

OUTARRAY

 

INBARRAY,

— для булевых массивов;

OUTBARRAY

 

OUTSTRING

— для вывода строк,

в результате чего устраняется необходимость в процедуре IENCTH. Параметры этих процедур декларируются в стиле реко­ мендаций ИСО. По умолчании принимается соглашение о том, что «номер канала», равный нулю, соответствует вводу с перфокарт,

а«номер канала», равный 1, соответствует выводу на печать.

ВАлголе-60 ЕС введены три дополнительных высказывания: SYSACT, PUT и GET, — позволяющие программисту с повышенной гибкостью и эффективностью управлять потоками данных.

18G


7.4. КОБОЛ ЕС

Язык программирования Кобол ЕС представляет собой расши­ рение CODASYL COBOL уровня 1965 г. Основные отличия состо­ ят в следующем.

В секции ввода-вывода раздела среды ENVIRONMENT DIVI­ SION введена статья

ORGANISATION IS k

где k — одно из резервированных слов: INDEXED, DIRECT или RELATIVE, определяющих прямую, индексированную или относи­ тельную организацию данных в соответствующем файле.

Введены операции над числами с плавающей точкой, не превы­ шающими 0,72* 1076. В связи с этим в числовых литералах и статье PICTURE используются знаки: . (точка) и Е (указатель поля по­ рядка числа).

В раздел процедур включена новая секция — секция связен, с помощью высказываний которой (CALL и ENTER) программист может организовать связь объектной кобольной программы с дру­ гими, независимо компилированными и необязательно кобольными программами. Кобольная программа, предназначенная для сепа­ ратной компиляции и последующего вызова из другой программы, должна содержать описание точки входа

ENTER LINKAGE.

ENTER имя входа [USING список аргументов].

ENTER COBOL.

и описание точки выхода

ENTER LINKAGE.

RETURN.

ENTER COBOL.

Вызов из основной программы записывается в форме:

ENTER LINKAGE.

CALL имя входа USING список аргументов.

ENTER COBOL.

В высказывании IF может быть указано тестирование состоя­ ния переполнения страницы при выводе на печать:

IF имя — переполнения ...

где имя — переполнения должно быть специфицировано в статье APPLY параграфа ввода-вывода:

APPLY имя — переполнения ТО FOPM—OVERFLOW ON имя файла

В раздеде процедур введено высказывание REWRITE?

REWRITE имя — записи FROM имя данных

INVALID KEY повелительное — высказывание ...

для обновления записи на устройстве ввода-вывода с прямым до­ ступом.

187

Введена возможность редактирования данных под управлением высказывания TRANSFORM в разделе процедур:

(фигуративная — константа — 1) TRANSFORM имя—данных CHARACTER FROM <не — числовой — литерал— 1 |

(имя — данных — 1 J

фигуративная — константа —2 {не — числовой — литерал — 2

имя— данных — 2

где FROM-нараметр и ТО-параметр определяют способ редакти­ рования данных имя — данных; результат редактирования остает­ ся в имя—данных. Представление об использовании TRANSFORM можно получить из следующего примера: если имя — данных со­ держит

A1BICI

то в результате выполнения

TRANSFORM имя — данных CHARACTER FROM ’АВСГ ТО Ч23Х’

имя — данных будет содержать

IX2X3X +

Введена статья RECORD KEY в параграфе FILE — CONTROL для спецификации ключа записи при индексной организации файла.

Для повышения эффективности использования случайного до­ ступа к индексно организованному файлу в параграфе FILE — CONTROL вводится статья

TRACK.AREA IS { целоГ ^™ 1^ } CHARACTER

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

Отладочные средства Кобол ЕС позволяют свободно разме­ щать в кобольной программе отладочные высказывания TRACE, EXHIBIT и ON или группировать последние в отладочные пакеты.

Трассирование программы включается высказыванием

READY TRACE

и отключается высказыванием

RESET TRACE

Вывод отладочных данных производится по высказыванию

( NAMED

EXHIBIT { CHANGED NAMED

( CHANGED

/и м я — д а н н ы х

/л и т е р а л

Это высказывание в предложениях должно быть последним. Форма CHANGED указывает, что выводиться должны лишь те данные, значения которых изменились после момента последнего из предыдущих случаев выполнения EXHIBIT CHANGED.

188


Для отладочного исполнения отдельных частей программы предназначается высказывание

ON kl

AND EVERY k2 UNTIL k3

| ^ <^ ^ и^ ^ 0®!^,®ЫС1Сазива',ие j

/ ELSE

1

/ высказывание

1

1 OTHERWISE /

( NEXT SENTENCE J

Параметры высказывания к1,к2икЗ играют роль, аналогичную роли параметров подразумевающихся циклов в Фортране.

Параграфы исходной машины и объектной машины записыва­ ются в форме:

SOURCE — COMPUTER. ЕС номер — модели.

OBJECT — COMPUTER. ЕС номер — модели.

7.5.ПЛ/1 ЕС

Вспецификациях языка ПЛ/1 ЕС введено более 600 изменений, уточнений, добавлений и удалений по сравнению со спецификация­ ми 1966 г.1.

Из особенностей, отлйчающих язык ПЛ/1 ЕС, наиболее харак­ терными и заслуживающими внимания являются, на наш взгляд,

следующие.

Понятие переменной обобщается на случай файла.

Имя — файла — переменной должно быть декларировано явно указаниям атрибута VARIABLE вместе с атрибутом FILE, при этом не допускаются атрибуты описания файла, т. е. INPUT, OUT­ PUT, UPDATE, DIRECT, BUFFERED и т. п. Эти атрибуты исполь­ зуются для декларирования имени — файла — константы. Напри­ мер, если декларирован файл А, а файл В имеет атрибут VARIABLE, то после выполнения высказывания

В=А;

результат выполнения высказываний

ON ENDFILE В;

и

ON ENDFILE А;

будет одинаковым.

Программист имеет возможность локально в пределах блока управлять применением правил умолчания. Для этого использует­ ся высказывание DEFAULT в одной из следующих двух форм:

DEFAULT ALL [спецификация — атрибутов]

или

DEFAULT список спецификаций — умолчания;

где спецификация — атрибутов имеет вид:

f список атрибутов [VALUE (список спецификаций — значений)] (VALUE (список спецификаций — значений)

1 Универсальный язык программирования. Пер. под ред. В. М. Курочкина.

М., «Мир», 1968.

189

в

качестве элемента

списка спецификаций — умолчания могут

быть указаны либо

 

 

 

d д м г " р ( / идентификатор

\

Г /идентификатор

\ 1 , [спецификация —

11 Цбуква 1: буква 2

/

[Дбуква 1 : буква 2

атрибутов]

либо

RANGE (*) [спецификация — атрибутов]

либо

.DESCRIPTOR [спецификация — атрибутов]

либо

CONSTANT [спецификация — атрибутов]

под спецификацией — значений здесь понимаются специфика­ ции точности, CHARACTER выражение, BIT выражение, AREA выражение;

знак * означает ссылку на все идентификаторы, находящиеся в области действия DEFAULT;

указание DESCRIPTOR обозначает распространение влияния DEFAULT на все непустые дескрипторы в явно декларированных атрибутах ENTRY;

указание CONSTANT распространяет влияние DEFAULT на константы.

Высказывание DEFAULT представляет собой естественное обоб­ щение фортранного IMPLICIT.

Введены высказывания FLOW и NOFLOW для включения и со­ ответственно выключения отладочных средств, подобных отладоч­ ным средствам в Фортране.

Определено содержание понятия физического файла — набора данных.

76. ОСОБЕННОСТИ КОМПИЛЯЦИИ

Устройство компиляторов с языков Ассемблера, Фортрана, Ко­ бола, Алгола и ПЛ/1 позволяет оценить время работы каждого из них с помощью единой формулы

T=K+R*n+ D*s+M*m,

где К — константа, не зависящая от длины обрабатываемой про­ граммы и включающая время процессора и системы для всех ша­ гов задания;

R — коэффициент, определяющий дополнительное время обра­ ботки одной карты исходной программы в среднем;

п — количество карт исходной программы; для Ассемблера в их число следует включить карты, выработанные макрогенерато­ ром;

D — коэффициент, определяющий дополнительное время обра­ ботки одного высказывания в макроопределениях; для Фортрана — среднее время обработки одной подпрограммы, затрачиваемое до­ полнительно;

190