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

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

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

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

Добавлен: 17.10.2024

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

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

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

1— передвинуть каретку к первой строке следующей стра. ницы;

+— подавить переход к следующей строке.

Если запись передается не на печать или если первая литера

не специфицирована как wH или

то первая литера представ­

ляет собой обычные данные.

 

Если при печати числа по спецификациям I, D, Е, F или G ши­ рина поля указана недостаточной для выдачи старших значащих цифр, то все поле заполняется звездочками.

В стандартной записи высказываний ввода-вывода

R E A D

( a l , а 2 ) сп и с о к

R E A D

( а ) сп и с ок

W R I T E ( а ) сп и с ок

E N D F I L E

а

R E W I N D

а

B A C K S P A C E а

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

В Фортране IV ЕС для ввода-вывода с прямым доступом к на­ борам данных введены следующие высказывания: DEFINE FILE, READ, WRITE, FIND.

D E F I N E F I L E a l ( k 1 , c l , b l , p i ) , а 2 ( к 2 , c2, b2, p 2 ) , . . .

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

к1, к2,. . . — беззнаковые целые константы, определяющие ко­ личество записей в соответствующих наборах дан­ ных;

с1, с2,. . . — максимальная длина записи (целая константа без знака) в наборах данных al, а2,...;

Ы, Ь2,... — принимают значения L, Е и U; U обозначает, что записи измеряются в словах и предназначены для бесформатных данных; Е обозначает, что записи измеряются в байтах и предназначены для фор­ матных данных; L обозначает, что записи измеря­ ются в байтах и могут содержать как форматные, так и бесформатные данные;

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

Высказывание DEFINE FILE используется для декларирова­ ния описания наборов данных с прямым доступом и должно пред­ шествовать первому упоминанию этих наборов в операциях READ, WRITE и FIND:

R E A D ( а ’р, х, E R R = c ) сп и с о к

где а — ссылочный номер набора данных;

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

12*

179


х— метка формата или имя массива с форматными данными; при бесформатном чтении этот параметр опускается;

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

W R I T E ( а ’р, х ) сп и с ок

где параметры а, р и х имеют тот же смысл, что и соответствую­ щие параметры высказывания прямого READ.

F I N D ( a ’p)

где параметры а и р по смыслу подобны соответствующим пара­ метрам прямых READ и WRITE.

Это высказывание позволяет совмещать во времени операции поиска указанной записи и ввода-вывода предыдущей записи.

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

D A T A а 1 / с I /, а 2 / с 2 / , . . .

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

с— список констант, в котором повторяющиеся группы кон­ стант могут быть записаны с коэффициентом повторения

к* аналогично группам констант высказывания NAMELIST.

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

 

 

 

IM P L IC I T

тип

1*к1 (а 1), тип

2*к 2 ( а 2 ) . . .

 

 

 

 

где

тип

г — тип (INTEGER, REAL, COMPLEX

или

LOGICAL),

 

 

который в данной программной единице будет припи­

 

 

сываться по умолчанию всем именам, идентификато­

 

 

ры которых начинаются с одной из указанных в спис­

 

 

ке ai литер;

 

 

 

при этом груп­

 

 

аг — список литер, разделенных запятыми;

 

 

па алфавитноупорядоченных литер

а п , а п +

и . . . ,

а п

 

 

может быть записана в сокращенной форме ап—an + j ;

 

* Ы — опция1,

где k

определяет

умалчиваемую

длину для

 

 

имен г-го списка:

 

 

 

 

 

 

 

 

 

 

 

 

Д л и н а , п р и п и с ы в а е м а я

 

 

 

Тип

 

 

 

и м ен а м си с т е м о й в о т ­

 

 

 

 

 

Д л и н а

с у т с т в и е

оп ц и и

 

 

 

 

INTEGER

2

или

4

 

4

 

 

 

 

 

 

REAL

 

4

или

8

 

4

 

 

 

 

 

 

COMPLEX

8

или

16

 

8

 

 

 

 

 

 

LOGICAL

1

или

4

 

4

 

 

 

 

 

1 П о д оп ц и ей п о н и м а е т с я у к а з а н и е п р о гр а м м и с т а о в ы б р а н н о й

им у с л у г е

или

в о з м о ж н о с т и

си ст ем ы

п р о гр а м м и р о в а н и я и з

о п р е д е л я е м о г о

д л я

к а ж д о г о

к он ­

к р етн ого

с л у ч а я

сп и ск а

у с л у г или в о з м о ж н о с т е й ; о т с у т с т в и е

т а к о г о

у к а з а н и я

обы ч н о в л еч ет п р и м е н е н и е н е к от ор ы х , о п р е д е л е н н ы х д л я

д а н н о г о с л у ч а я ,

п р а ­

вил

у м о л ч а н и я .

 

 

 

 

 

 

 

 

 

 

180



Двойная точность в IMPLICIT указывается не как DOUBLE PRECISION, а как REAL *8.

В объявлениях типов возможны некоторые дополнительные по сравнению со стандартом указания

Тип *к а1 *к1

(размерность 1) [/cl/], а2*к2

(размерность 2) [/c2/],..s

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

массива,

размерность — обычные указания

о

размерах

количество измерений может достигать семи;

 

*кг — опция

длины, подобная

введенной

для

высказывания

IMPLICIT, причем * k i (i¥=0) относится

только

к имени

аг, тогда как *к относится ко всем остальным именам;

а — список констант, форма

записи и смысл которого подоб­

ны списку констант высказывания DATA. Указание /а’/ может отсутствовать;

Тип — одно из слов: INTEGER, REAL, LOGICAL или COMPLEX. Тип DOUBLE PRECISION эквивалентен REAL*8. Ини­ циализация данных списком констант в этом объявлении запрещена.

При взаимодействии COMMON и EQUIVALENCE разрешает­ ся увеличение общих областей в сторону больших, но нё меньших адресов.

Имя функции в высказывании FUNCTION может быть снаб­ жено приставкой указания длины *к.

Всписке фиктивных аргументов высказывания SUBROUTINE разрешается указывать фиктивные метки в форме звездочки *.

Всписке фактических параметров высказывания CALL разре­ шаются указания в форме & Ь, где b — метка высказывания, при­ надлежащего той программной единице, к которой принадлежит данное CALL.

Высказывание RETURN может иметь вид:

RETURN х

где х — целая константа (простая целая переменная) длины 4, рав­ ная порядковому номеру метки в перечне фиктивных меток списка формальных параметров высказывания SUBROUTINE, принадле­ жащего той же программной единице, что и данное RETURN. Фак­ тическое значение метки, определяющее точку возврата по RE­ TURN х, должно быть указано в соответствующем высказывании

CALL.

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

Разрешается передавать переменные размерности массивов в объектное время во время работы программы чеоез блоки COM­ MON. -

Дополнительные точки входа в программную единицу опреде­

181


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

ENTRY имя входа (список параметров)

где имя входа — внешнее имя, употребляемое при вызовах, на­ ряду с именем программной единицы SUBROUTINE или FUN­ CTION;

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

В качестве фактического параметра могут использоваться ли­ тералы; литеры спецификации ’и’ или wH при этом опускаются.

В подпрограмме BLOCK DATA разрешается использование вы­ сказывания IMPLICIT.

7.2.3. Элементы Фортрана II

Для совместимости с Фортраном II в Фортране IV ОС ЕС раз­ решается использование высказываний ввода-вывода в форме:

READ

х,список

PUNCH

х, список

PRINT

х, список

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

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

CALL.

Для установки псевдорегистров LIGHT используется подпро­ грамма

LIGHT (к),

где при к = 1,2,3 или 4 включается k-й псевдорегистр, а при к = 0 все четыре псевдорегистра выключаются (к — целое выражение).

Для проверки состояния псевдорегистров используется подпро­ грамма

SLITET (к, х),

в результате выполнения которой по заданному целым выражени­ ем к номеру псевдорегистра SLITE целая переменная х устанав­ ливается в 1 или 2 соответственно тому, включен или выключен псевдорегистр.

Сброс памяти осуществляется подпрограммами:

DUMP (al, el, xl, a2, e2, x2,...)

и

PDUMP (al, el, xl, a2, e2, x2,...)

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

182

программы и где ai и et задают начало и конец i-й области памя­ ти, подлежащей сбросу по формату xi. Существует следующее соот­ ветствие между целой константой xi и форматами:

0 — шестнадцатеричный,

6

— REAL*8

1 — LOGICAU1,

7

— COMPLEX*8,

2 — LOGICAL*4,

8

— COMPLEX*16,

3 — INTEGERS,

9

— литеральный,

4 — INTEGER*4,

10— REAL*16,

5 — REAL*4,

11

— COMPLEX*32.

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

DVCHK (k)

устанавливает k равным 2, если состояние деления на нуль имеет место, и равным 1 в противном случае.

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

OVERFL (к)

устанавливает к равным 1, если имеет место состояние переполне­ ния порядка; равным 3 при состоянии исчезновения порядка и рав­ ным 2 в отсутствие этих состояний.

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

EXIT

прекращает выполнение программы.

7.2.4. ОС ЕС — зависимые элементы языка Фортран ЕС

Важнейшая системозависимая особенность языка Фортран IV ОС ЕС заключается в том, что фортранные программы пользовате­ ля не содержат элементов, зависящих от операционной системы непосредственно. Такая зависимость может проявляться в програм­ мах лишь косвенно — через ограничения на доступные программи­ сту размеры внешней и внутренней памяти, через эксплуатацион­ ные характеристики внешних устройств, через соглашения об орга­ низации оверлейных программ с запланированным перекрытием и т. д. Прямая зависимость от операционной системы вынесена из фортранных программ в сопровождающие их программы, написан- ^ ные на языке управления заданиями.

i

S

7.2.5. G-расширения Фортрана ОС ЕС

При использовании компилятора G в фортранные программы могут быть включены следующие отладочные высказывания.

Объявление о подключении отладочного пакета;

DEBUGG опция 1, опция 2 ,..,

183