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

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

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

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

Добавлен: 17.10.2024

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

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

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

находящегося на магнитной ленте. Создаваемый набор данных име­ ет следующие характеристики: формат записи F, записи имеют 4-байтовые ключи, диапазон изменения которых 1050—6050. За­ прос памяти под набор данных делается на 5000 записей. Если за­ пись с некоторым ключом из указанного диапазона отсутствует, записывается фиктивная запись.

C I K L

S P A V N

F I K T •

E N D

К О N E C

O B L V V O D

V I V O D

L

O P E N

L A

G E T

L R

C

B N E

W R I T E C H E C K

AH

В

C

BH

W R I T E C H E C K

AH

BR L A

BR

CL O S E

DS ' ’

DC B

D C B

10, = F '1 0 5 0 '

( V I V O D , ( O U T P U T ) , V V O D )

5, S P A V N V V O D

3,

1

 

1 0 , 0 ( 3 )

F IK T

 

B L O K 1 . S F , V I V O D , (3)

B L O K !

10, =

H T

C I K L

 

10, =

F '6 0 4 9 '

K O N E C

B L O K 2 , S D , V I V O D , O B L

B L O K 2

10, = H T 5

5, F IK T 5

( V V O D , , V I V O D )

C L 5 0

D S O R G = P S , M A C R F = ( G L ) , E O D A D = E N D , D D N A M E = H A B

D S O R G = P S , M A C R F = ( W L ) , D D N A M E = H A B 2

Для входного последовательного набора данных открывается блок управления данными VVOD в режиме ввода (INPUT), а для выходного— блок управления данными VIVOD в режиме вывода (OUPUT). Считывание входного последовательного набора данных осуществляется с помощью макрокоманды GET в режиме указа­ ния. После выполнения этой макрокоманды адрес очередной логи­ ческой записи находится в регистре 1.

Если это следующая запись формируемого набора данных с прямой организацией, то используется макрокоманда WRITE для ее записи на том прямого доступа.

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

WRITE).

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

Во втором примере осуществляется добавление блоков данных в только что созданный набор данных с прямой организацией. До­ полнительные блоки вводятся с магнитной ленты.

173


C IK L

••

V V O D

V I V O D

K L U C H

D A N N

O S T A T O K

O P E N

G E T

Р

S H

S T

W R I T E W A I T C L C

B E

D C B '

D C B

D S

D S

D S

( V I V O D , ( O U T P U T ) , V V O D ) V V O D , K L U C H

3, K L U C H

3 , = H T 0 5 0 '

3, O S T A T O K

B L O K , D A , V I V O D , D A N N ,' S ' , K L U C H , O S T A T O K + 1 E C B = B L O K

B L O K + 1 ( 2 ) , = X ' 0 0 0 0 ' C IK L

D S O R G = P S , M A C R F = ( G M ) , E O D A D = N N N , D D N A M E = H A B 1

D S O R G = D A , M A C R F = ( W A ) , D D N A M E = H A B 2 F

CL 100

F

Для входного последовательного набора ' данных

открыва

ется блок управления данными VVOD в режиме ввода

(INPUT),

а для набора данных с прямой организацией — VIVOD в режиме вывода (OUTPUT). Считывание входного набора данных осуществ­ ляется с помощью макрокоманды GET в режиме пересылки (пос­ ледовательный метод доступа с очередями). В результате очеред­ ная логическая запись помещается в область KLUCH. После это­ го, используя ключ, вычисляют относительный номер блока, кото­ рый запоминается в области OSTATOK.

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

В данном примере синхронизация операции вывода с выполне­ нием программы осуществляется с помощью макрокоманды WAIT. Анализ ошибочных ситуаций при выводе возлагается на програм­ миста.

7. ОСОБЕННОСТИ РЕАЛИЗАЦИИ языков ПРОГРАММИРОВАНИЯ

АЛГОЛА-60, ФОРТРАНА IV, КОБОЛА И ПЛ/1 ДЛЯ ОС ЕС ЭВМ

7.1. СТРУКТУРА СИСТЕМЫ ПРОГРАММИРОВАНИЯ'

Каждая из систем программирования ОС ЕС рассчитана на оп­ ределенный класс проблемных программистов (пользователей) и дает им возможность записывать алгоритмы и запросы на предо­ ставление услуг из определенного подмножества полного набора услуг ОС ЕС таким образом, что становится необязательным зна­ комство ни с внутренним устройством системы и ОС ЕС, ни с пол­ ным набором возможностей и услуг ОС ЕС.

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

Трансляторы обсуждаемых систем программирования относят­ ся к типу компилирующих программ и называются в дальнейшем компиляторами. Порцией исходного текста для каждого процесса компиляции служит так называемый исходный модуль: для Алго-

ла-60 и

ПЛ/1

это программа или процедура, для

Кобола — про­

грамма,

для

Фортрана IV — главная

программа,

подпрограмма

или подпрограмма-функция. Результат

компиляции, называемый

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

7.2.ФОРТРАН IV ОС ЕС

Всистему программирования Фортран IV входят два компи­ лятора: отладочный компилятор G и оптимизирующий компилятор

Н. Общая часть языковых версий для этих компиляторов содер­ жит в виде правильного подмножества ANS-Фортран, известный ранее как ASA-Фортран. Общие для G и Н расширения языка ANS-Фортран представляют собой, с одной стороны, элементы Фортрана V, ставшие традиционными для современных реализа­ ций, с другой — средства совместимости с ранними версиями язы­ ка, в частности, с Фортраном II. Кроме того, как и при любой реа­ лизации, существуют машинозависимые уточнения стандартного языка и элементы, зависимые от конкретной операционной систе­ мы. Ниже приведена схема состава языка Фортран IV ОС ЕС.

175


Ф о р т р а н _ IV О С Е С ~

■ A N S - Ф о р т р а н г э П р о м е ж у т о ч н ы й Ф о р т р а н г э Б а з и с н ы й Ф о р т р а н М а ш и н о з а в и с и м ы е у т о ч н е н и я

G— р а с ш и р е н и я — тольк о

Н— р а с ш и р е н и я — т ол ь к о

Э л е м е н т ы

Ф о р т р а н а

V

Э л е м е н т ы

Ф о р т р а н а

II

{О С Е С — за в и с и м ы е эл е м е н т ы

7.2.1. Машинозависимые уточнения языка

Для величин типа INTEGER максимум равен 231—1, т. е. 2147483647.

Для величин типа REAL:

максимум равен 1663, т. е. около 1075; минимум, отличный от нуля, равен 16~65, т. е. около 10~78;

количество значащих шестнадцатеричных цифр в зависи­ мости от объявления (TYPE DECLARATION) равно 6 или 14, т. е. около 7.2 или 16.8 десятичных цифр.

7.2.2. Элементы Фортрана V

Литерный набор для записи исходных программ расширен символом денежной единицы, относящимся к классу букв (см. приложение 2), а также двумя специальными литерами: ’-апост­ роф, & — логическое «И». Литеральные константы разрешается специфицировать заключением в одиночные апострофы.

Вводится понятие шестнадцатеричной константы для инициа­ лизации значений переменных. Шестнадцатеричная константа ог­ раничивается слева буквой Z, справа — ограничителем. Цифры шестнадцатеричной константы помещаются по две на каждый байт в правой части участка памяти, отведенного для соответствующей переменной, и дополняются слева нулями. При нехватке места в памяти обрезаются левые цифры константы.

Символическое имя может содержать символ денежной едини­ цы и, в частности, начинаться с этого символа. Размерность мас­ сивов может достигать 7. Разрешаются смешанные арифметиче­ ские выражения, т. е. операнды арифметических операций могут не совпадать по типу и по длине. Перед выполнением операции производится выравнивание типов и длин по старшему операнду согласно следующей схеме старшинства:

1( 2)

1(4)

/

С ( 8 ) — »-С (16)

■R(4)

R ( 8 ) — ►С (16) ,

 

 

N

где I, R и С обозначают соответственно INTEGER, REAL и COMP­ LEX; цифрами обозначены длины в байтах.

Окончательный результат вычислений выравнивается по типу и длине левой части высказывания (statement) присваивания или по типу и длине, определяемым местом арифметического выраже­ ния: имеются в виду такие случаи, как индексное выражение или фактический параметр-выражение,-

176


Индексное выражение может иметь вид произвольного смешан­

ного

арифметического

выражения с целыми и

действительными

операндами. Выражение

может содержать элементы массивов и

обращения к функциям. Результат приводится к целому типу.

В

операциях отношения могут участвовать

смешанные целые

и действительные выражения.

 

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

При возведении в степень показатель не может быть комплекс­ ным, а при комплексном основании — и действительным выраже­ нием.

При выравнивании действительной величины по комплексной мнимая часть принимается равной нулю. При выравнивании комп­ лексной величины по действительной мнимая часть игнорируется.

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

Высказывание PAUSE может иметь, кроме стандартных, сле­ дующий формат:

P A U S E ’ л и т е р а л ь н а я к о н с т а н т а ’

Выполнение этого высказывания состоит в передаче его текста оператору и переходе программы в состояние ожидания до вмеша­ тельства оператора.

Выполнение высказывания STOP в форме:

S T O P а

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

Высказывание чтения может иметь, кроме стандартного, сле­ дующий формат:

READ (al, а2, ERR= a3, END —а4) список

где a l — целая переменная или константа длины 4, представляю­ щая собой ссылочный номер набора данных, получающий реальное содержание в dd-картах определения данных, внешних по отношению к фортрановской программе вы­ сказываниях языка управления заданиями ОС ЕС;

а2 — метка или массив с форматными данными, или NA- MELIST-имя;

аЗ — метка высказывания, получающего управление при ошиб­ ке ввода-вывода;

а4 — метка высказывания, получающего управление при попыт­ ке прочитать запись конца файла.

)2. Заказ 3414.

177


Отсутствие одного из двух последних параметров или обоих сразу влечет в соответствующих ситуациях прекращение работы программы. Порядок записи параметров END и ERR несуществен.

Параметры высказывания

W R I T E ( a l , a 2 ) сп и с ок

аналогичны первым двум параметрам высказывания READ. Введено новое высказывание

N A M E L I S T / x l / с п и с о к 1 / х 2 / с п и с о к 2 . . .

где х 1, х2,... — NAMELIST-имена, указываемые в высказываниях чтения и записи и связывающие эти высказывания с соответствую­ щим^ NAMELIST-именам списками.

Данные для ввода и вывода по NAMELIST имеют формат

п р о б е л

&

N A M E L I S T — имя

 

 

с 1 1 = с п и с о к

11,

с 12 =

с п и с о к

12, .«

п р о б е л

 

 

 

 

с 2 1 = сп и с ок

21,

с22 =

сп и с о к

22, . . .

E N D

где cij — имя простой или индексированной переменной, или имя массива;

список ij — список целых и действительных констант, разде­ ленных запятыми.

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

к * { ( с п и с о к к о н с т а н т )|к о н с т а н т а }

где к — коэффициент повторения.

Введены дополнительные спецификации форматов:

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

G — обобщенная спецификация для целых, действительных, двойной точности и логических данных, играющая роль специфи­ каций I, F,D,L в соответствии с объявленным или умалчиваемым типом переменных в списке ввода-вывода;

’литерал’ — используется наряду с обычным обозначением ли­ тералов: wH литерал;

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

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

пробел— передвинуть каретку на одну строку (к началу сле­ дующей строки);

О — передвинуть каретку на две строки;

— — передвинуть каретку на три строки;

178