ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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-единицы звездочки дополняют имя до восьмили терного; если в "имени внешней процедуры программистом указано более семи литер, то для имени программной секции
" удерживаются только первые четыре и последние три литеры.