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

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

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

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

Добавлен: 17.10.2024

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

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

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

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

М — дополнительное время обработки одной макроинструкции; m — количество макроинструкций.

Для Фортрана последнее слагаемое обращается в нуль, для Ко­ бола и ПЛ/1 обращаются в нуль последние два слагаемых фор­ мулы.

ij случае Ассемблера для приближенного подсчета времени компиляции могут быть сделаны следующие усредненные допуще­ ния;

при каждом вхождении макрокоманды DCB генерируется око­ ло 50 строчек;

при каждом вхождении макрокоманды DCBD генерируется око­ ло 100 строчек;

для остальных системных макрокоманд генерируется около 6

строчек.

 

 

 

оценки

количества

В табл. 3 даются более точные верхние

строчек в макроопределениях системных макрокоманд.

 

 

 

 

 

 

Т а б л и ц а 3

 

Верхние оценки в формуле для системных макрокоманд

 

К о л и ч е с т в о

2 0 0 0 - 2 2 0 0

1 0 0 0 -1 5 0 0

6 0 0 - 1 0 0 0

3 0 0 - 6 0 0

М е н ь ш е 300

с т р о ч е к

 

 

 

 

 

Имена системREAD

ных макроко­ WRITE манд

ATTACH

CALL

CAMLST Остальные

DCB

DCBD

CLOSE

макроинст-

рукции

LINK

DUMP

EXTRACT

 

XCTL

TEST

FREEMAIN

 

 

 

GETMAIN

 

 

 

GO

 

 

 

OPEN

 

 

 

PRTOV

 

SET

SPIE

TRACE

WTOR

XDAP

Быстродействие трансляторов на модели ЕС-1030 и методы до­ ступа к памяти, используемые компиляторами, приведены в табл. 4 и 5. В таблицах приведены дополнительные данные, сведения о которых даются в технической документации.

191


 

 

 

 

 

 

Т а б л и ц а

4

 

Быстродействие трансляторов на модели ЕС-1030

 

 

 

К о э ф ­

А с с е м б л е р

Ф о р т р а н IV (Н )

Ф о р т р а н IV

К о б о л

 

 

 

 

 

 

 

В ид р а б о т ы

фици­

О Р Т = 0

О Р Т = 2

П Л /1 (F )

 

е н т

(F)

(О )

(Е )

 

 

 

 

 

 

 

 

 

-

к

2.42

1.65

3.45

1.12

3.45

1.7

 

Компиляция

р

0.0052

0.0142

0.032

0.017

0.0054

0.027

 

I

0.0022

0.71

1.5

0.0037

 

 

м

0.022

 

 

 

 

 

 

 

Загрузка,

к

1.81

2.28

2.25

2.3

2.06

3.75

л

р

0.00001

0.0018

0.0001

0.0008

0.0009

0.0022

 

запуск

I

0.

0.

0.

0.

 

 

м

0.

 

 

 

 

 

 

к

0.97

0.97

0.98

1.0

0.97

1.02

 

Запуск

р

0.00001

0.0001

п.0003

0.00004

0.000015

0.00001

1

0.

0.

5.

0.

 

 

 

 

 

 

м

0.

 

 

Компиляция,

к

3.97

3.97

5.4

3.15

5.25

5.15

 

р

0.0052

0.015

0,033

0.017

0.0064

0.029

 

загрузка,

I

0.0022

0.725

1.5

0.0037

 

запуск

м

0.0225

 

 

 

 

 

Методы доступа и память,

 

 

Т а б л и ц а

5

 

используемые компиляторами

 

 

Методы досту­

Оперативная

Дисковая

па

(AM)

память (байтов)

память

 

 

 

 

 

Библиотеки

Компиляторы

 

 

 

 

на дисках

 

 

 

 

 

(байтов)

СЛ О.

С/1

MFT

MVT

байтов треков

03 03

о

О V)

 

 

 

Рабочее про­ странство SYSUT1/2/3/4 (треков)

А л го л -6 0

(62)

+

 

 

 

 

 

4 5

0 5 6

48 К

133 К

3 8

4 9 К

9

 

8

2

0

А с с е м б л е р

 

+

+

+

 

4 9

152

50 К

147К

4 0

 

 

 

 

 

 

К о б о л (Е )

 

+ +

 

17 5 0 4 2 2 К

3 3 6 К

96

4

 

9 9 0

К о б о л (F )

 

+ +

 

81 9 2 0 8 6 К

3 1 5 К

9 0

2 8 К

6 5 6 5

К о б о л ( A N S )

+

+

 

81

9 2 0

8 6 К

4 3 0 К

123

3 8 .5 К

8

11

6

3

К о б о л (F ) с G S P

+ +

+

 

+ 3 5 3 1 8 + 7 1 К + 73 К + 2 1

 

 

 

 

 

 

Ф о р т р а н I V ( Е )

+

 

15

3 6 0 4 2 К

1 1 2 К

3 2

5 9 .5 К

3 0

 

0

0

Ф о р т р а н

I V

(G )

+

 

81

9 2 0

100 К

84 К

2'4

9 1 К

 

 

 

 

 

Ф о р т р а н

I V

( Н )

+

 

155

64 8

160 К

4 4 6 К

127

9 1 К

10

1

 

0

0

Ф о р т р а н

I V

(G )

 

 

 

 

 

 

+ 3 5 31 8 + 7 1 К + 73 К + 21

 

 

 

 

 

 

t G S P

 

 

 

+

 

 

 

 

 

 

 

П Л /1 (F )

 

 

+

 

 

т

t

4 5

0 5 6

50 К

1 2 6 3 К

361

2 7 6 .5 К

5

0

 

18

0

 

 

 

 

 

 

 

П Л / 1 ( F ) с G S P

+

+ + + 3 5 3 1 8 + 7 1 К + 7 3 К + 2 1

 

4

4

 

4

0

Р П Г

 

 

+

 

15

3 6 0

18К

175 К

5 0

 

 

С о р т и р о в к а - о б ъ е -

 

 

 

 

 

 

16

0 0 0 18К

8 0 .5 К

2 3

2 1 0 К

 

 

 

 

 

ди н ен и е

 

 

+

 

 

 

 

 

 

Т е с т р а н - р е д а к т о р

+

 

18

0 0 0 5 0 К

4 6 К

15

2 2 4 К

1 0

 

0 0

П Л / 1 - к о н т р о л л ер

 

 

 

 

 

 

 

 

 

3 5 К

10

 

 

 

 

 

 

>

192


7.7. КАТАЛОГИЗИРОВАННЫЕ ПРОЦЕДУРЫ КОМПИЛЯТОРОВ

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

Вызов процедур производится предложением ЕХЕС языка уп­

равления заданиями. Имена процедур

приведены в табл. 6.

 

 

 

 

Т а б л и ц а 6

 

И м ен а к а т а л о ги зи р о в а н н ы х п р о ц е д у р

 

 

 

Р е ж и м р а б о т ы

 

К о м п и л я т о р

к о м п и л я ц и я

К О М П И Л Я Ц И Я ,

р е д а к т и р о в а н и е ,

К О М П И Л Я Ц И Я ,

 

р е д а к т и р о в а н и е ,

 

р е д а к т и р о в а н и е

в ы п о л н е н и е

в ы п о л н е н и е

А с с е м б л е р

 

F O R T R A N

(G )

F O R T R A N

(Н )

A L G O L

 

C O B O L

 

P L /1

 

A S M F C F O R T G C

F O R T H C A L G C

С О Б Е С

P L 1L F G

A S M F C L F O R T G C L F O R T H C L A L G C L

C O B E C L P L 1 L F C L

A S M F L G F O R T G L G F O R T H L G A L G L G

C O B E L G P L 1 L F L G

A S M F C L G F O R T G C L G F O R T H C L G A L G C L G

C O B E C L G P L 1L F C L G

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

С помощью приведенных ниже некоторых ключевых парамет­ ров программист может уточнить в предложении ЕХЕС условия обработки своих программ:

D E C K

— в ы д а ч а о б ъ е к т н о г о м о д у л я н а п ер ф ок ар ты ;

L O A D

— п е р е д а ч а о б ъ е к т н о г о м о д у л я в о в р е м ен н у ю б и б л и о т е к у д л я

 

е г о

п о с л е д у ю щ е й о б р а б о т к и в т ек у щ ем за д а н и и р е д а к т о ­

 

р ом

св я зей ;

S O U R C E

— п еч ать

и с х о д н о й ф о р т р а н н о й и ли П Л /1 п р огр ам м ы ;

L IS T

— т о ж е д л я К о б о л а , А л го л а и А с с е м б л е р а ;

L IN E C N T = x

— у к а за н и е о ч и сл е ст р о к х н а ст р ан и ц е ;

M A P

— п еч ать

п л ан а п ам я т и д л я Ф о р т р а н а ;

X R E F

— п еч ать

табл и ц ы п ер ек р ест н ы х ссы л ок д л я П Л /1 и А с с е м б ­

 

л ер а ;

 

O P T = k

■ ук а за н и е о б у р о в н е оп ти м и за ц и и д л я Ф о р т р а н а (Н ) и П Л /1 ;

 

к м о ж е т п р и н и м ать зн ач ен и я 0, 1 или 2.

13. Заказ 3414.

193


Используя каталогизированные процедуры, программист может подключать дополнительные операторы определения данных. Ука­ заниям этих предложений в течение хода данного шага задания дается приоритет перед указаниями каталогизированных процедур. Благодаря этому становится возможным локальное корректирова­ ние текста каталогизированных процедур. 3

Приведем несколько примеров.

1. Компиляция фортранной подпрограммы с максимальной оп­ тимизацией и выдачей объектной колоды перфокарт;

//и м я — з а д а н и я J O B

//E X E C F O R T H C , P A R M = 'D E C K , O P T = 2 ' //F O R T .S Y S I N D D *

К о л о д а п е р ф о к а р т с т ек ст о м и с х о д н о й п о д п р о г р а м м ы

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

//и м я — з а д а н и я J O B //E X E C F O R T G C L G //F O R T .S Y S I N D D *

C M A IN P R O G R A M

E N D

S U B R O U T I N E A I . . .

E N D

F U N C T I O N B I . . .

E N D

E N D

i К о л о д а п е р ф о к а р т с i и с х о д н о й п р о гр а м м о й

/*

//G O .S Y S I N D D *

К о л о д а п ер ф о к а р т с и сх о д н ы м и д а н н ы м и

/*

3. Выполнить операции предыдущего примера, на шаге редак­ тирования определить дополнительный ввод из библиотеки MYLIB и конкатенировать первичный ввод библиотечными модулями А, В и С:

//и м я — з а д а н и я J O B

//A B C E X E C F O R T G C L G //F O R T .S Y S I N D D *

И с х о д н ы е м о д у л и

/*

//L K E D .A D D L I B

D D D S N A M E = M Y L I B

//L K E D .S Y S I N

D D *

L IB R A R Y

A D D L IB ( A ,B ,C )

//G O .S Y D I N

D D

*

И с х о д н ы е д а н н ы е

/*

194

7.8. СОГЛАШЕНИЯ ОБ ОБЪЕКТНОМ МОДУЛЕ

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

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

В последующем обсуждении редактора связей будут употреб­ ляться следующие сокращения:

CESD

— составной словарь внешних символов

СМ

общий (COMMON)

ENTAB —

таблица входов

ER

внешняя ссылка

ESD

—-

словарь внешних ссылок

ESDID

ESD — идентификатор

LD

определение метки

NE

— не — редактируемый — атрибут

OL

— только — загружаемый — атрибут

Р— указатель

PC

частный код

PR

псевдорегистр

RLD

словарь перемещений

SD

определение секции

SYM

символьная запись Тестрана

TXT

текстовая запись

WX

слабая внешняя ссылка

Формат объектной записи Тестрана

Байты

12—9—2

(0000 0010)

1

2—4

SYM

 

5—10

пробелы

 

11—12

число байтов тестрановых данных

13—72

тестрановые данные

73—80

не используются

13*

195


Р е д а к т о р с в я з е й

1

Ко н т р о л ь н а я

сек ц и я

И м я к он т р ол ь н ой сек ц ии

И м я в х о д а

В н еш н я я ссы л к а

Т а б л и ц а 7

Соответствие между понятиями редактора связей и понятиями языков программирования

Ф о р т р а н IV

2

(1 ) п о д п р о г р а м м а |

ф ун к ц и я 1

(3 ) б л о к

ны х | (4 )

о сн о в н а я

гр а м м а

 

 

 

ПЛ/1

А с с е м б л е р

 

 

3

 

4

(2 )

(1)

в н еш н я я

п р о ц е д у р а

П р о гр а м м н а я

д а н ­ (2)

M A IN —

п р о ц е д у р а

сек ц и я

п р о ­

(3)

стати ч еск и й внеш ни й

 

 

(4 ) вн еш н и й ф а й л | (5 ) с т а ­

 

 

т и ч еск ая в н у т р ен н я я п ам я ть

 

 

|

(6 ) сек ц и я

с в я зе й , г е н е ­

 

р и р у е м а я к о м п и л я то р о м

К о б о л А л го л -6 0

5

6

П р о гр а м м а

П р о гр а м м а |

 

п р о ц е д у р а —

 

C O D E

(1 )

и м я

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

|

(1 )

и м я п р о ц ед у р ы

|

(2) С и м в ол

в

в ы ск а ­

И м я

в

п р е д л о ж е ­ П р о б е л |;

(2 )

и м я

ф ун к ц и и

|

(3 ) п р о ­ IH E M A IN

|

(3 )

и м я

 

д а н ­ зы в а н и я х

 

C S E C T

нии P R O G R A M

и м я п р о ц е ­

б ел

|

(4 )

M A IN

 

|

и м я

в ны х

| (4 )

и м я ф а й л а

|

(5) или S T A R T

| п р о ­ ID

 

 

д у р ы —

п а р а м е т р е

N A M E

в ы ск а ­ * - - - * 11

 

и м я — п р о гр а м м ­ б ел

 

 

 

 

 

C O D E

зы в а н и я

Е Х Е С

 

 

 

 

н ой — сек ц и и

д л я

в н еш ­

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ней

— п р о ц ед у р ы

I

 

1 (6)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IH E N T R Y

 

 

 

 

 

 

 

 

 

 

 

 

И м я

в

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

 

И м я

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

 

С и м в ол

в ы ск а зы ­

И м я

в

в ы ск а зы в а ­

 

E N T P Y

 

 

 

 

 

 

E N T R Y

 

 

 

 

 

 

в ан и я E N T R Y .

ю т E N T R Y

 

С сы л к а

к

ф ун к ц и и

| ссы лк а

И м я

с

явны м

или

у м а л ч и ­ И м я в E X T R N 1

И м я

в

 

 

к б л о к у д а н н ы х

j и м я

в в ы ­ в аем ы м

а т р и б у т о м

 

 

А — к о н ст а н т а

C A L L

 

 

ск а зы в а н и и

E X T E R N A L | E X T E R N A L '

 

 

 

V — к о н ст а н т а

 

 

 

 

и м я

в

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

C A L L

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Н е п о и м е н о в а н н а я

Н еп о и м ен о в а н н ы й

об щ и й Н е т

С ек ц и я ,

о п р е д е ­ Н ет

Н ет

о б щ а я сек ц и я

бл ок C O M M O N

 

л ен н а я

в ы ск а зы в а ­

 

н и я м и С О М

 

 

 

 

 

 

 

 

 

П родолжениг

Р е д а к т о р с в я з е й

Ф о р т р а н IV

 

 

П Л /1

 

А с с е м б л е р

К о б о л

А л г о л - п О

1

2

 

 

3

 

 

4

5

ь

Поименованная

Поименованный общий блок Неинициализированный

 

Нет

Нет

Нет

общая секция

COMMON

внешний

или неинициализи­

 

 

 

 

 

рованный статический внеш­

 

 

 

Имя общей секции Имя поименованного

ний

 

 

 

 

 

 

Нет

блока Имя

неинициализированно­

Нет

Нет

 

COMMON

го внешнего или неинициа­

 

 

 

 

 

лизированного

статического

 

 

 

 

 

внешнего

 

 

 

 

 

 

Псевдорегистры

Нет

Создаются для: (I) контро­

Нет

Нет

Нет

 

 

лируемой

переменной;

(2)

 

 

 

 

 

объявленного

файла;

(3)

 

 

 

 

 

блок—процедуры; (4) на­

 

 

 

 

 

чало—процедуры; (5) ON—

 

 

 

 

 

единица

 

 

 

 

 

 

Имя псевдорегистра

Нет

( 1 )

имя

переменной;

( 2 )

Внешняя фиктив­

Нет

Нет

 

 

имя

файла; (3,4 ) имя

про­ ная секция

 

 

 

 

цедуры; (5)

11 имя—сек­

 

 

 

 

 

циидля—внешней—про­

 

 

 

 

 

цедуры! |

{ В 1 C |

. , . }

 

Непоименованная

Нет

Нет

Частный код

Нет

 

Нет

 

 

контрольная сек­ ция

С

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

" удерживаются только первые четыре и последние три литеры.