Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Килов Х.И. Фортран для БЭСМ-4 (МИФ) учеб. пособие

.pdf
Скачиваний:
5
Добавлен:
23.10.2023
Размер:
5.14 Mб
Скачать

Министерство висшэго и среднего специального образования

Латвийской ССР Латвийский ордена Трудового Красного Знамени

государственный университет имени Петра Стучки

Вычислительный центр

Х.И. Килов

Ф О Р Т Р А Н

Д Л Я

Б Э С М - 4

( М И Ф )

Учебное пособие

фи-U'Uti.S 1ШХ0*О

Редакодонно-издательский отдел ЛГУ им. Петра Стучки Рига 1973

В работе описаны модификация алгоритмического языка ФОРТРАН для ЭВМ БЭСМ—4 (МИФ) и структура ком­

пилятора с этого языка.

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

нях.

((f) Редакционно-издательский отдел ЛГУ им.П.Стучки,IS73 г.

КП-2-2-4-116У тз М 812(П)-73

"Why", aaid

the Dodo,

"the beat Way

to explain

i t i s to do

i t " .

 

L . C a r r o l l

I . Введение

В настоящей работе описаны модификация языка

ФОРТРАН (МИФ - МИни Фортран) и компилятор с него для ЭВМ БЭСМ-4.

Компилятор для своей работы требует:

-два куба МОЗУ по 4096 слов,

-не менее трех магнитных барабанов,

-АЦПУ,

-узкую печать,

-ввод с ПК,

-вывод на ПК.

Авторы значительно сократили и одновременно допол­ нили ФОРТРАН; тем не менее, духа стандарта Cljj они

стремились придерживаться. Основные отличия от стандарта указаны в 2.7. Дополнения в основном имели целью исполь­

зовать возможности, представляемые машиной. В чаотности»

в любом месте программы разрешается записывать машинные команды в автокоде и использовать имеющуюся библиотеку стандартных подпрограмм в системе ИС-2М.

Компилятор составлен и отлажен в ВЦ ЛГУ им»П.Стучки коллективом в составе Б.Б.Леш, Х.Й.Килова и Э.Ш.Арш в

соответствии с идеями, под руководством и при непосредст­

венном участии Б.Б.Леш. Работа потребовала около 3,5 че­ ловеко-лет.

Результатом компиляции является рабочая программа в кодах машины БЭСМ-4.

Примерное тшемя компиляции ФОРТРАН-программы дли­ ной в 70-75" операторов составляет АО секунд (без вы­

дачи рабочей программы на внешние устройства).

В процессе компиляции печатается листинг ФОРТРАН-

программы и осуществляется подробный оинтаксичеокий и от­

части семантический контроль с выдачей на АЦПУ диагности­ ческих сообщений.

-4 -

Рабочая программа, по желанию пользователя, может быть либо выдана на узкую почать, АЦПУ или перфокарты, ли­

бо as выдана ш на одно m внешних устройств. Счет может

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

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

КОДИРОВКИ СИМВОЛОВ.

Компилятор предоставляет возможность отладки ра­

бочей программы* Длина компилятора около I3K кодов.

При разработке и создании компилятора авторы соз­

нательно отказались от создания (или использования) опе­ рационной система, в рамках которой должен был бы рабо­

тать компилятор. Авторы считают, что на таких достаточно малых машинах, как БЭСМ-4, это, по-вкдамому, нецелесооб­

разно. Даже на таких ЭВМ, как IBM 360/50, при компиляции

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

что и послужило причиной создания "быстрых" компиляторов с ФОРТРАНа на этой машине [33. В нашем случае также воз­ никла необходимость в создании компилятора, который может

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

пользователя и выполнить рабочую программу. Насколько это

удалось авторам - судить пользователю.

Авторы вырааают благодарность М.М.Байхману, Б.П.За-

полю s Ю„А, Филиппову за ценные замечания, сделанные при просмотре рукописи.

2. Описание языка

2.1.Ошводы

ВФСРЗРАН-программе разрешается использовать следущве символы:

2.1.I* Цифры от 0 до 9.

2.1.2» Прописные буквы русского и латинского алфавитов.

Замечание. Буква 0, в отличие от цифры 0, перечер­

кивается.

-5 -

2.1.3. Знаки:

•+-*/,.

> !

2.1.4."Основные символы" (обязательно должны подчерки­

ваться) :

1ЛШ, REAL, FUl-ICTIgN, ST0P, G0T0, I F , Dg, С01.11.1Д1?Т,

REAP, Ш И , PUWCH, WRITE, C0JITIIWE, PAUSE, F0RT.1AT,

SUBROUTINE, RB'i'URL', CALL, EQUIVALENCE, EXTERNAL,

SP, 0PTI01;, C0L3, DEBUG.

Никакие другие символы не могут быть использованы ни в основном тексте ФОРТРЛН-программы, ни в комментариях.

2.2. Константы

Константы могут быть только числовыми. Целое число

записывается как обычно, с использованием цифр и (возмож­

но) знака.

Вещественное число с плавающей точкой записывается как обычно, в виде:

<знак> < строка цифр> . <строка цифр>

Одна из этих строк цифр (но не обе!) может отсутствовать. Знак "+" такие может отсутствовать.

Вещественное число с порядком - это вещеотвенное число о плавающей точкой, ^за которым следует буква Е, а затем - целое число (порядок).

При записи чисел следует учитывать, что на БЭСМ-4 диапазон представимте чисел находится в пределах от

-0.922337204'Ю19 до +0.922337204° Ю 1 9 , а точность не превышает 9 значащих десятичных цифр.

Примеры:

'

Целые числа:

1 0 +1 - I 123456789

 

Вещественные числа:

Д

25£ь2 25.2 -0.0001 "I .

- 6 -

-I.О O.I +I.5E2 1.Б2Е-01

2.3, Переменные

2,3.1. Простые переменные

Простая перемешан мохсет принимать (числовые) зна­

чения ивдентифицнруетсяо помощью символического назва­ ния (идентификатора). Идентификатор - это последователь­

ность дз не более чем шести букв и цифр, начинающаяся с

буквы. (Все символы в идентификаторе вслед за первыми шестью игнорируются, т.е. идентификаторы I D E H T I F I K A T O R ,

I D E N T I H IDEMTIRRR одинаковы).

2.3.2. Переменные с индексом

Переменные с индексом служат для оо'ращеиия к элемен­

там массивов. Массив - это упорядоченный набор (числовых)

данных. Обращение ко всему этому набору осуществляется с

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

2.3.2.1. Разрешается использование только одномерных и

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

В последнем случае значением первого индексного выражения является номер строки матрицы, а второго - номер столбца

матрицы. На пересечении'указанных строки и столбца матри­ цы и находится элемент массива с рассматриваемым индексом.

2.3.2.2. Индексное выражение может быть только одного из следующих видов:

С

I

- 7 -

I+C

I-C

Cxi

C*I+K

C K I - K

где. С и К - цолые числа, I - переменная, которая в момент

обращения к соответствующему элементу массива должна

иметь целое значение.

Никакое индексное выражение не может иметь значение,

меньшее единицы или большее своей верхней границы. Верх­

няя граница указывается в описании соответствующего ?лас~ сива (СМ.2.6.2Л.З.).

2.3.2.3.Двумерные массивы располагаются в памяти по стро­

кам.

2.3.2.4.Любой двумерный массив эквивалентен одномерному массиву с тем же идентификатором (с учетом 2,3.2.3.). Это дает возможность обращаться к элементам двумерных масси­ вов так, как если бы они были одномерными. Например, обра­ щение к третьему элементу второй строки матрицы 10x10 раз­

решается осуществить двумя способами:

А(2,3) и АЦЗ)

2.3.2.5. .Другие подробности работы с массивами (в.частно­ сти, виды массивов , распределение памяти и т.д.) приведе­ ны в 2.6.2.1.3. •

2.3.3. Значения

Перед обращением к переменной (простой или с индек­ сом) ей должно быть присвоено значение. Компилятор МЖ> присваивает всем простым переменным и элементам массивов

значение, равное 0.922337204" Поэтому при арифметичес­ ких действиях над переменными, которым в ФОРТРАН-црограмие

не присвоено значение, как правило, происходит АБОСТ АУ«

-8 -

2.4.Выражения

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

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

Операндами могут быть:

-константы;

-переменные (простые или с индексом);

-обращения к функциям (см. 2.6.30;

-заключенные в круглые скобки, арифметические выражения.

Знаками операций могут быть:

+(плюс)

(минус)

к(умножение)

/(деление)

» к (возведение в степень).

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

 

Пример.

'

"--

записывается в виде

 

 

(-B+3QRT(B* •2-4*А*С))/(2*А)

Старшинство операций, т.е. порядок их выполнения,

определяется как обычно. Для изменения порядка операций

используются круглые скобки.

Запрещается писать подряд два знака операций, т.е. вместо Ая-2 следует писать Ая(-2).

2.4.2. Заражения отношения

Выражение отношения - это два арифметических выраже­

ния, соединенных одной из следующих комбинаций символов:

.ЬТ.

(Less Than)

- меньше

,LE»

(Bess or Equal) - меньше ИЛИ равно

- 9 -

.EQ.

(iDQuai;

- равно

.NE.

(Hot Equal)

- не равно

• GE.

(Ог-eatei- or Equal) - больше ИЛИ раВНО

.GT.

(Greater Tlian)

- больше.

2.4.3. Логические выражения

Логическое выражение - это либо выражение отноше­

ния, либо два выражения отношения, соединенные одной из

следующих комбинаций символов:

.AND. (и)

(или)

Значением логического выражения может быть "истина"

или "ложь".

2.5. Структура ФОРТРАН-программы и общие

сведения об операторах

2.5.1. ФОРТРАН-программа является упорядоченным набором

операторов. Каждый оператор (кроме последнего оператора END) заканчивается символом ";" (точка с запятой). Опера­ торы делятся на два класса: невыполняемые операторы (опи­ сания) и выполняемые операторы. Невыполняемые операторы описывают характеристики и расположение обрабатываемых данных, сообщают информации о редактировании данных, слу­

жат для комментариев, осуществляют класоифшеациго програм­

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

(при обработке данных.

2.5.2.Порядок следования операторов в ФОРТРАН-щюграмме:

2.5.2.1.Операторы 0PTI0N , управляющие процессом компиляции.

2.5.2.2.Глобальные описания.

2.5.2.3.Операторы, составляющие подпрограмму.

Соседние файлы в папке книги из ГПНТБ