ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.07.2024
Просмотров: 89
Скачиваний: 0
Министерство висшэго и среднего специального образования
Латвийской ССР Латвийский ордена Трудового Красного Знамени
государственный университет имени Петра Стучки
Вычислительный центр
Х.И. Килов
Ф О Р Т Р А Н |
Д Л Я |
Б Э С М - 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;
-заключенные в круглые скобки, арифметические выражения.
Знаками операций могут быть:
+(плюс)
(минус)
к(умножение)
/(деление)
» к (возведение в степень).
Значением арифметического выражения является число.
|
Пример. |
' |
— |
"-- |
записывается в виде |
|
2а |
|
(-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.Операторы, составляющие подпрограмму.