Файл: Килов Х.И. Фортран для БЭСМ-4 (МИФ) учеб. пособие.pdf

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

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

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

Добавлен: 25.07.2024

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

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

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

-83 -

77.6.Количество вводимых или выводимых простых перемен­

ных меньше единицы.

77.7.За элементом списка отсутствует , или ;

78.В операторе ввода с перфокарт неверно записан список контроля ИЛИ перевода.

78.1.Признак контроля ИЛИ перевода не 0 ИЛИ 1 .

78.2.За признаками контроля И перевода отсутствует ,

79.В автокоде неверно записан код операции.

79.1.Код операции - не восьмеричное число.

79.2.Вслед за кодом операции отсутствует ,•или ;

79.3.Код операции превышает 777д

80.Ь автокоде неверно записан один из (абсолютных) ад­

ресов.

80.1.Перед адресом отсутствует ,

80.2.Число не является восьмеричным.

80.3.Число превышает 7777р

81.В автокоде неверно записана константа в единицах ад­ ресов.

81.1.Число перед К (код) превышает 777g

81.2.Вслед за П отсутствует , или ;

81.3.Один из адресов Б константе превышает 7777g

81.4.Один из адресов в константе - не восьмеричное число.

81.5.Вслед за одним из адресов в константе отсутствует4

81.6.Одни из адресов в константе встречается дважды

(например, 1 - 1 * ) .

82.В автокоде неверно записан один из адресов - десят. константа, метка или относит.адрес команды.

82.1.Вслед за < отсутствует число.

82.2.Вслед за числом отсутствует >

82.3.Вслед за : отсутствует метка.

82.4.Вслед за « отсутствует + или - или , или ;

82.5.Относительный адрес не начинается с цифры.

82.5.Относительный адрес - не число.

82.7. Относительный" адрес - дробное число.

83. В автокоде относительный адрес команды превышает 15.


-84 -

84.Неверно записано обращение к стандартной программе,

84.1.Информационная строка не начинается с кода операции.

84.2.Номер СП - не абсолютный адрес.

84.3.Номер СП превышает максимально допустимый (477^).

65.Б автокоде адрес начинается с недозволенного символа.

66.3 автокоде в записи адреса - арифметического выражения встретился недозволенный идентификатор или индекс.

86.1, Встретился идентификатор подпрограммы или функции.

66.2, Идентификатор простой переменной является параметром цикла.

86.3, Идентификатор простой переменной имеет абсолютный

адрес.

85.4, Встретился идентифшсатор массива из динамической

памяти или массива-формальиого параметра.

86.5, Вслед завдентификатороммассива отсутствует (

66,G, Индекс элемента массива - не'число.

86.7. Вслед за индексом элемента массива отсутствует )

87. В логическом I P за условием записан оператор I P или

D0.

87.1, Записан оператор I P 87.2. Записан оператор Dg

88.В логическом I P неверно записана операция сравнения.

88.1.Операция сравнения - не У2 ,LE,EQ,NE,GT ИЛИ GE. 88.2, Перед или после операции сравнения отсутствует точка

89.В условии логического I F ХХХХХХ не является идентифика­

тором переменной.

_

90.В логическом I P неверно записано условие.

90.1.Вслед за выражением вида А.ьт.в отсутствует ) или ,

90.2.Вслед за выражением вида А.Ьт.в, отсутствует .AND. или .0R, или вслед за AND или 0R отсутствует точка

90.3.Вслед за двумя (простыми) логическими выражениями,

связанными с помощью AND или 0R, отсутствует )

91. Абсолютный адрес на МБ в операторе READ или WRITE больше дозволенного.

92. В логическом I P вслед за условием записан помеченный

оператор.


-85 -

93.Вслед за CALL отсутствует идентификатор.

94.Нет описания подпрограммы (или массив;)) ХХХХХХ.

95.Количество фактических параметров в подпрограмме

ХХХХХХ меньше количества формальных параметров.

96.Вслед за идентификатором подпрограммы отсутствует (

или ;

97.Количество фактических параметров в подпрограмме

ХХХХХХ больше количества формальных параметров.

98.Вид обращения к подпрограмма ХХХХХХ не соответствует

ее описанию.

98.1.В операторе CALL записано обращение к функции.

98.2, В арифметическом выражении записало обращение к подпрограмме типа SUBROUTINE.

99. Фактический параметр ХХХХХХ не начинается с идентифи­ катора или числа.

100.Формальному параметру номер ХХХХХХ - простой перемен­

ной соответствует фактический параметр-массив.

101.Фактический па])аметр номер ХХХХХХ не является пере­ менной, хотя ;,эл»;ен здесь ею быть.

102.В обращении к подпрограмме вслед за фактическим пара­

метром номер ХХХХХХ нет ) по есть (

103.Фактический параметр в обращении к встроенной функции

ХХХХХХ не является простой переменной, хотя должен ею быть.

104.В обращении к встроенной функции ХХХХХХ за фактическим

параметром нет )

105.Фактический параметр функции FLOAT не является прос­

той переменной или имеет абсолютный адрес.

106.Формальному параметру номер ХХХХХХ - подпрограмме со­

ответствует фактический параметр, не являющийся идентифи­ катором.

107.Фактический паршетр номер ХХХХХХ не является подпро­ граммой, хотя должен ею быть.

108.Формальный параметр-подпрограмма отсутствует в спис­

ке EXTERNAL.


_ 86 -

109.Фактический 'параметр-подпрограмма XXXLXX отсутствует

ВСПИСКв EXTERNAL.

110.Фактический паршлетр-подщзограмш ХХХХХХ встречается в теле подпрограммы из той :ке группа EXTERNAL.

111.Фактический паршетр-подпрограмма )ССХХХХ встречается з обращении к подпрограмме из той ;/.е группа EXTERNAL.

112.В обращении к подпрограмме - формальному параметру встречается фактический параметр-подорограша ХХХХХХ ИЗ ТОЙ Кв ГРУППЫ EXTERNAL.

'113. В теле подпрограммы ХХХХХХ встречается обращение к этой же подпрограмме.

114.В описании подпрограммы ХХХХХХ ее идентификатор сов-_ падает с идентификатором подпрограммы - формального пара­ метра из списка EXTERNAL.

115.Обращение к подпрограмме - формальному параметру

ХХХХХХ встречается в теле подпрограммы из той ;:;е группы

EXTERNAL.

116.Обращение к подпрограмме ХХХХХХ встречается в теле подпрограммы из той же группы EXTERNAL.

117.Вид памяти (МОЗУ-1, ДП) массива - фактического пара­ метра ХХХХХХ не соответствует виду памяти массива - фор­ мального параметра.

118.Одномерный массив - фактический параметр ХХХХХХ соот­ ветствует двумерному массиву - формальному параметру.

119.Фактический параметр - двумерный массив ХХХХХХ с пере­ менной структурой соответствует формальному параметру - двумерному массиву с постоянным количеством столбцов.

120.Массив-фактический параметр ХХХХХХ является формаль­ ным параметром, но его характеристики не соответствуют ха­ рактеристикам массива из описания вызываемой подпрограммы.

121.Неверно записан индекс массива-формального параметра

ХХХХХХ.

121.1.Индекс не начинается с числа или идентификатора.

121.2.В индексе встретился идентификатор, не являющийся идентификатором простой переменной.

-87 -

122.В индексе массива - формального параметра ХХХХХХ не­ верно записана конструкция за знаком умножения.

122.1.За знаком умножешхя отсутствует цпнтификатор.

122.2.Идентификатор за знаком умножения не является иден­ тификатором простой переменной.

123. Вслед за индексным выражением массива-формального па­

раметра ХХХХХХ отсутствует , или )

124. Индекс одномерного массива-формалыюго параметра

ХХХХХХ содержит более одного индексного выражения.

125. Неверно записано второе индексное выражение массиваформального параметра ХХХХХХ.

125.1.За числом не следует ) или й

125.2.За знаком умножения отсутствует идентификатор,

125.3.Идентификатор за знаком умножения не является идентификатором простой переменной.

125.4.За конструкцией вида 2к1 отсутствует ) или + или -

125.5.За вторым индексным выражением отсутствует )

125.6.Второе индексное выражение не начинается с числа или идентификатора.

125.7.Идентификатор, с которого начинается второе индекс­ ное выражение, не является идентификатором простой пере­

менной.

-

126.Обращение к функции ХХХХХХ записано в левой части оператора присваивания.

127.Неверно записан фактический параметр номер ХХХХХХ -

арифметическое выражение.

128.Неверно записана организационная информация в опера­ торе отладочной печати.

128.1.Количество повторений - нецелое число.

128.2.Количество повторений - не положительное число.

128.3.Количество повторений больше 1000.

"Н8.4.

За

количеством повторений отсутствует

,

 

128.5.

За

указателем вида печати отсутствует.

, .

ч

129.Оператор начинается с недозволенного символа.

130.Слишком сложная структура фактического параметра -


88 -

арифметического выражения.

131. Неверно записан фактический параметр номер ХХХХХХ

соответствующий формальному параметру -массиву.

131.1.Фактический параметр не является идентификатором.

131.2.Фактический параметр не является идентификатором массива.

5.Краткое описание компилятора

Компиляция ФОРТРАН-программы осуществляется в три просмотра.

Первый просмотр производит перекодировку символов

ФОРТРАН-программы во внутренний код машины,печать ли­

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

Второй просмотр создает рабочую программу о точ­

ностью до распределения памяти.

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

5.1. Первый просмотр

5 . I . I . Перекодировка

ФОРТРАН-программа перфорируется в некотором вход­

ном коде (см..напр., й). Для разных реализаций компиля­

тора входной код, а также количество и расположение сим­

волов в строке (ячейке машины) могут быть различными.

Настройка соответствующих параметров компилятора и табли­ цы дешифратора описана в 6.3. и 6.4.

На первом просмотре с помощью указанной информации

осуществляется перекодировка символов ФОРТРАН-программы во внутренний код, совпадающий (за исключением подчеркива­

емых "основных символов" - см. 2.1.4.) с кодом АЦПУ

[ 4 ]

При втом происходит контроль запрещенных во входном

языке

-89 -

символов. Если они обнаружены, то на АЦПУ (вне зависимос­

ти от того, происходит ли печать листинга - см.ниже) печа­

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

ФОРТРАН-проГрамма во внутреннем коде записывается

(по 128 символов + КС) на магнитный барабан. При этом в каждой строке (ячейке машины) записывается один символ.

5.1.2. Печать листинга

Как правило (кроме случая, указанного в 2.6.2.5Л..), при

первом просмотре на АЦПУ печатается листинг ФОРТРАН-про-

граммй(см.рис.

I ) .

 

 

 

В каждой строке листинга печатается один оператор.

Слева печатается

порядковый номер оператора в ФОРТРАП-

программе. Перед оператором

COMMENT

И

после него про­

пускается одна строка. Совместно с операторами gPTlgH

печатается соответствующий

словесный текст. В конце каж­

дой программной единицы, после оператора

END , пропуска­

ется одна строка.

 

 

 

Листинг печатается постранично, по 64 строки в

странице.

Если последним символом ФОРТРАН-программы не явля­

ется символ END , то печатается" ОТСУТСТВУЕТ

END", и .

компиляция прекращается.

 

Если какой-либо оператор занимает большее коли­

чество символов, чем позволяет строка АЦПУ, то он печата­

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

5.2. Второй просмотр

Второй просмотр производит основную работу в про­ цессе компиляции ФОРТРАН-программы. Результатом этого про­

смотра является промежуточная рабочая программа в кодах

машины с точностью до распределения памяти. Каждая команда