Катцан Г. Язык Фортран 77: Пер. с англ.— М.: Мир, 1982. — 208 с., ил. Фортран— один из первых языков программирования. Его различные екты обобщены в новом стандарте, включающем современные управляющие труктуры, дополнительные типы данных, средств ввода-вывода. Автор книги — мериканский ученый, известный по переводу его книги «Операционные системы» Фортран— один из первых языков программирования. го различные диалекты обобщены в новом стандарте, включающем современные управляющие структуры, дополнительные типы данных, средств ввода-вывода. Автор книги — риканский ученый, известный по переводу его книги «Операционные системы» : Мир, 1976). Для программистов, разработчиков программного обеспечения, студентов пирантов вузов. Предисловие редактора перевода..................' 5
Предисловие.........................., . 7
1. Введение........................... П
1.1. Предмет книги........................ И
1.1.1. Историческая справка ... ............... II
1.1.2. Расширения....................... II
1.1.3. Разработка нового стандарта Фортрана......... 12
1.1.4. Расширения, вошедшие в новый стандарт Фортрана .... 12
1.2. План книги.........,................ 14
1.2.1. Круг читателей......,.............. 14
1.2.2. Круг вопросов............. ,....... 14
1.2.3. Сравнение старого и нового стандартов.......... 15
1.3. Синтаксические обозначения.................. 15
1.3.1. Расширенная форма Бэкуса............... 16
1.3.2. Синтаксические диаграммы..............., 17
1.4. Основные понятия языка Фортран 77 и терминология ...... 19
1.4.1. Последовательность................... 20
1.4.2. Список......................... 20
1.4.3. Отрезки памяти и единицы памяти........... 20
J.4.4. Ассоциирование..................... 21
1.4.5. Статус определенности................. 21
1.4.6. Выбор значения объекта и обращение к процедуре в Фортране 77........................... 22
1.4.7. Процессор....................... 22
2. Характеристика языка Фортран 77............... 23
2.1. Содержание главы....................... 23
2.2. Алфавит............................ 23
2.2.1. Буквы и цифры.................... 23
2.2.2. Специальные литеры.................. 23
2.2.3. Отношение следования.........,....... 23
2.2.4. Пробелы.........-............... 24
2.3. Идентификаторы........................ 25
2.3.1. Имена.......................... 25
2.3.2. Ключевые слова.................... 25
2.4. Структура инструкции..................... 25
2.4.1. Строки комментариев.................. 26
2.4.2. Начальная строка................... . 26
| 2.4.3. Строки продолжения.................. 26
2.4.4. Пустые строки..............,...<.. 27
ОГЛАВЛЕНИЕ
2.4.5. Инструкции языка фортран 77............. 27
2.4.6. Метки......................... 28
2.4.7. Форма инструкции в Фортране 77........... 28
2.5. Организация программы..........•.......... 29
2.5.1. Программная компонента................ 29
2.5.2. Главная программа................... 29
2.5.3. Подпрограммы..................... 29
2.5.4. Процедуры....................... 30
2.5.5. Программные компоненты BLOCK DATA........ 30
2.5.6. Исполняемая программа................ 30
2.5.7. Порядок инструкций в программной компоненте .... 31
3. Типы данных и константы................... 33
3.1. Типы данных....................... 33
3.2. Константы и значения.................. 35
3.3. Данные целого типа................... 35
3.4. Вещественные данные................... 35
3.5. Данные двойной точности............"..... 39
3.6. Комплексные данные................... 40
3.7. Логические данные.....,.............. 41
3.8. Текстовые данные.................... 42
3.9. Холл ер ито веки е данные................. 43
4. Структуры данных....................... 45
4.1. Переменные.......................... 45
4.2. Текстовые подцепочки..................... 45
4.2.1. Имя подцепочки..................... 45
4.2.2. Граничные выражения подцепочки............ 45
4.3. Массивы........................... 47
4.3.1. Имя и тип массива................... 47
4.3.2. Распределение памяти для массивов........... 47
4.3.3. Измерения массива................... 48
4.3.4. Индекс массива ...................... 49
4.3.5. Выбор элемента массива................ 49
5. Выражения.......................... 50
5.1, Общий обзор......................... 50
5.2, Арифметические выражения.................. 50
5.2.1. Арифметические операции.............., . 50
5.2.2. Арифметические операнды................ 51
5.2.3. Структура арифметических выражении.......... 52
5.2.4. Арифметические выражения специального вида...... 55
5.2.5. Правила вычисления арифметических выражений..... 55
5.2.5.1. Однотипные выражения.........., . . 55
5.2.5.2. Выражения со смешением типов......... 56
5.2.5.3. Унарные операции............... 58
5.2.5.4. Целочисленное деление............. 58
5.2.5.5. Возведение в степень.............. 58
5.3. Текстовые выражения..................... 58
5.3.1. Текстовые операции................... 59
5.3.2. Текстовые операнды..................' . 59
5.3.3. Структура текстовых выражений............. 59
5.3.4. Текстовые выражения специального вида........ 60
5.4. Выражения отношения..................... 60
5.4.1. Операции отношения................ 60
5.4.2. Операнды операций отношения........... 61
5.4.3. Вычисление выражений отношения......... 61
5.4.3.1. Арифметические выражения отношения...... 62
5.4.3.2. Текстовые выражения отношения........ 62
5.Ь. Логические выражения.................... 63
5.5.1. Логические операции.................. 63
5.5.2. Логические операнды.................. 64
5.5.3. Структура логических выражении............ 64
5.5.4. Логические выражения специального вида........ 67
5.5.5. Замечание о выполнении логических выражений .... 67 5.6. Интерпретация и вычисление выражений........... 68
5-6.1. Старшинство операций различных типов......... 68
5.6.2. Неприкосновенность скобок и правила интерпретации . . 68
5.6.3. Математические соображения.............. 69
5.6.4. Обращения к функциям................. 70
5.6.5*. Вычисление выражений "................. 70
5.6.5.1. Фактические параметры............. 71
5.6.5.2. Индексы..................... 71
5.6.5.3. Ссылка на подцепочку............. 71
5.6.5.4. Математическая эквивалентность ... ...... 71
5.6.5.5. Эквивалентность отношений........... 7!
5.6.5.6. Логическая эквивалентность........... 72
5.6.5.7. Текстовые выражения.............. 73
6. Выполнение и классификация инструкций Фортрана....... 74
6.1. Цель классификации.................... . 74
6.2. Последовательность выполнения................ 74
6.2.1. Нормальная последовательность выполнения . . ..... 74
6.2.2. Передача управления.................. 75
6.2.3. Разные вопросы..................... 75
6.3. Исполняемые и неисполняемые инструкции........... 75
6-3.1. Список исполняемых инструкций............ 76
6.3.2. Список неисполняемых инструкций........... 77
7. Инструкции описания..................... 78
7.1. Общий обзор......................... 78
7.2. Инструкции описания типа.................. 78
7.2.1. Инструкции описания арифметического и логического типа 78
7.2.2. Инструкция описания текстового типа .......... 79
7.2.3. Пояснения об использовании инструкций описания типа . . 81
7.3. Инструкции описания неявного типа имен, описания значений -
констант и описания массивов............. 81
7.3.1. Инструкция IMPLICIT................. 81
7.3.2. Инструкция PARAMETER............. . 83
7.3.3. Инструкция DIMENSION................ 84
7.4. Распределение памяти .............•-...... 84
7.4.1. Общая память..................... 84
7.4.1.1. Статическая и динамическая память....... 85
7.4.1.2. Типы общей памяти............... 85
7.4.1.3. Инструкция COMMON.............. 87
7.4.1.4. Организация памяти для общих блоков ..... SB
7.4.2. Эквивалентность памяти.............. . 88
7.4.2.1. Инструкция EQUIVALENCE.......... 88
7.4-2.2. Правила использования инструкции EQUIVALENCE 89
7.4.2.3. Эквивалентность и общая память . ....... 90
7.4.2.4. Текстовая эквивалентность............ 91
7.4.2.5. Эквивалентность массивов............ 91
7.4.2.6. Частичное совмещение.............. 92
7.4.3. Индексация массивов.................. 93
7.5. Инициализация данных.................... 93
7.5.1. Инструкция DATA................... 94
7.5.2. Неявные DO-списки................... 95
7.5.3. Программная компонента BLOCK DATA........ 96
7.6. Инструкции описания, относящиеся к подпрограммам..... 97
7.6.1. Инструкция EXTERNAL................. 97
7.6.2. Инструкция SAVE................... 98
7.6.3. Инструкция INTRINSIC................. 99
8. Инструкции присваивания................... 101
8.1. Общий обзор......................... 101
8.2. Арифметическое присваивание................. 101
8.3. Логическое присваивание................... 102
8.4. Присваивание литерных цепочек................ 103
8.5. Инструкция ASSIGN..................... 103
8.6. Разные замечания о присваивании .............. 104
9. Инструкции управления.................... 105
9.1. Общий обзор......................... 105
9.2. Инструкции перехода..................... . 105
9.2.1. Инструкция безусловного перехода........... 105
9.2.2. Инструкция вычисляемого перехода........._. . 106
9.2.3. Инструкция перехода по предписанию......... 106
9.3. Инструкции условного перехода............., . „ 107
9.3.1. Арифметическая инструкция IF............. 107
9.3.2. Логическая инструкция IF............... 107
9.3.3. Конструкция IF-THEN-ELSE.............. 108
9.3.3.1. Уровень инструкции............... 108
9.3.3.2. Структурная инструкция IF........... 109
9.3.3.3. Инструкция ELSE IF.............. 109
9.3.3.4. Инструкция ELSE................ ПО
9.3.3.5. Инструкция END IF.............. 110
9.3.3.6. Замечания и пример.............. ПО
9.4. Инструкция DO....................... Ill
9.4.1. Структура DO-цикла.................. 112
9.4.2. Выполнение DO-цикла . .•............... 113
9.5. Инструкция CONTINUE................... 114
9.6. Инструкции STOP и PAUSE................. 114
9.7. Инструкция END....................... 115
10. Ввод и вывод. Основные понятия............... 116
10.1. Средства ввода и вывода................... 116
10.2. Записи........................... 116
10.2.1. Форматные записи................... 117
10.2.2. Бесформатные записи................ . 117
10.2.3. Запись конца файла................. 117
10.3. Файлы........................... 117
10.3.1. Внешний файл.................... И8
10.3.2. Внутренний файл................... 118
10.3.3. Терминология, связанная с файлами........ . 118
10.4. Методы доступа....................... 119
10.4.1. Атрибуты достуца..................... 119
10.4.2. Последовательный доступ ................ 120
10.4.3. Прямой доступ.................... 120
10.4.4. Доступ к внутренним файлам.......-...... 121
10.5. Каналы........................... 121
10.5.1. Подсоединение.................... 121
10.5.2. Отсоединение..................... 121
206
10.6. Список управляющей информации.............. 122
10.6.1. Синтаксис списка управляющей информации..... 122
10.6.2. Спецификация канала................. 123
10.6.3. Спецификация формата................ 123
10.6.4. Спецификация номера записи............. 124
10.6.5. Спецификация кода ответа.............. 124
10.6.6. Спецификация возврата по ошибке........... 124
10.6.7. Спецификация возврата по концу файла........ 125
10.7. Список ввода-вывода..................... 125
10.7.1. Простой список................... 125
10.7.1.1. Список ввода................. 125
10.7.1.2. Список вывода................ 126
10.7.2. Неявный цикл.................... !26
10.7.3. Массивы....................... 127
!0.8. Операции передачи данных.................. 127
10.8.1. Операции бесформатной передачи данных....... 128
10.8.2. Операции форматной передачи данных......... 128
10.8.3. Файл печати..................... 129
10.8.4. Ввод и вывод в свободном формате.......... 129
10.8.5. Установка текущей позиции в файле......... 130
II. Инструкции ввода и вывода.................. 131
11.1. Общая характеристика инструкций ввода и вывода...... 131
11.2. Инструкции передачи данных................ 131
11.2.1. Инструкция READ.................. 131
11.2.2. Инструкция WRITE................. 132
11.2.3. Инструкция PRINT.................. 132
11.3. Вспомогательные инструкции................. 132
11.3.1. Инструкция OPEN.................. 132
11.3.2. Инструкция CLOSE.................. 135
11.3.3. Инструкция INQUIRE................ 136
11.4. Инструкции установки текущей позиции в файле....... 137
11.4.1. Инструкция BACKSPACE............... 137
11.4.2. Инструкция ENDFILE................. 137
11.4.3. Инструкция REWIND................. 141
12. Спецификация формата..................... 142
12.1. Обзор............................ 142
12.2. Способы задания спецификации формата........... 142
12.2.1. Инструкция FORMAT................. 142
12.2.2. Задание формата в виде текстового объекта...... 143
12.2.3. Структура спецификации формата............ 143
12.2.4. Редактирование.................... 143
12.3. Дескрипторы преобразования и управляющие дескрипторы редактирования .......................... 145
12.3.1. Редактирование числовых данных .......... 145
12.3.1.1. Дескриптор I................ 146
12.3.1.2. Дескриптор F................ 147
12.3.1.3. Дескриптор Е................ 147
12.3.1.4. Дескриптор D................ 149
12.3.1.5. Редактирование комплексных данных..... 149
12.3.1.6. Дескриптор G................ 149
12.3.1.7. Масштабирующий множитель......... 150
12.3.2. Редактирование логических данных.........• . 151
12.3.3. Редактирование текстовых данных .......... 15!
12.3.3.1. Дескриптор-цепочка............. 152
12.3.3.2. Дескриптор Н................ 152
12.3.3.3. Дескриптор А................ 152
12.3.4. Установка позиции в записи............. 153
12.3.4.1. Дескриптор X................ 153
12.3.4.2. Дескриптор Т................ 154
12.3.4.3. Дескриптор TL............... 154
12.3.4.4. Дескриптор TR............... 154
12.3.5. Дескрипторы управления записями.......... 154
12.3.5.1. Наклонная черта............... 155
12.3.5.2. Двоеточие.................. 155
12.3.6. Управление выводом знака.............. 155
12.3.6.1. Дескриптор SP................ 155
12.3.6.2. Дескриптор SS................ 155
12.3.6.3. Дескриптор S................ 156
12.3.7. Управление вводом пробелов............. 156
12.3.7.1. Дескриптор BN............... 156
12.3.7.2. Дескриптор BZ............... 156
Разделители в спецификации формата......... 156
12.3.9. Коэффициент повторения'........... 156
12.3.10. Групповой дескриптор............. 157
12.4. Ввод-вывод в свободном формате............... 157
13. Структура программы..................... 158
13.1. Обзор............................ 158
13.2. Главная программа..................... 158
13.2.1. Инструкция PROGRAM................ 158
13.2.2. Структура главной программы............. 160
13.3. Стандартные функции.................... ;60
13.3.1. Обращение к стандартной функции.......... 160
13.3.2. Универсальные имена................. 161
13.3.3. Правила выполнения стандартных функций...... 161
13.4. Функции-формулы...................... 161
13.4.1. Определение функции-формулы............. 162
13.4.2. Обращение к функции-формуле............ 163
13.5. Внешние процедуры..................... 163
13.5.1. Виды внешних процедур............... 164
13.5.2. Выполнение внешней процедуры........... 164
13.5.3. Инструкция FUNCTION................ 165
13.5.4. Обращение к внешней функции ..,,.•....... 166
13.5.5. Инструкция SUBROUTINE.............. 167
13.5.6. Инструкция CALL................... 168
13.5.7. Инструкция ENTRY................. 169
13.5.8. Инструкция RETURN................. 170
13.5.9. Инструкция END................... 171
13.5.10. Передача массивов в качестве параметров внешних процедур ............................ 171
Литература............................. 172
Приложение А. Стандартные функции...........• . . . . 173
Приложение В. Синтаксис инструкций Фортрана.......... 179
Приложение С. Синтаксические диаграммы языка 77........ 181
Hosted by uCoz