ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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