Перевод с английского А.К. Ефремова, С.Л. Ляликова Редакция литературы по информатике и вычислительной технике Уорд Т., Бромхед Э. Фортран и искусство программирования персональных ЭВМ: Пер. с англ. — М.: Радио и связь, 1993. — 352 с.: ил. ISBN 5-256-00805-6. В книге американских авторов подробно изложены вопросы создания высокоэффективных программ на языке Фортран с учетом возможностей, предоставляемых пользователю современными персональными компьютерами. Приведены конкретные рекомендации по использованию памяти в Фортран -программах для персонального компьютера. Уделено внимание графическому выводу. Даны советы по экономии времени разработки программ, обзор распространенных компиляторов и оценка перспектив развития Фортрана. Для программистов. 1.4. ЧТО МОЖНО НАЙТИ В КНИГЕ?
Авторы стремились к тому, чтобы каждая глава была автономной при минимальном числе ссылок на предыдущие и последующие главы.
Глава 2 посвящена архитектуре микроЭВМ и сравнительно простому микропроцессору 8086 фирмы Intel. Краткие сведения о том, как микропроцессор осуществляет вычислительные операции, способствуют лучшему пониманию ПК (причем не только на базе 8086). Кроме того, даны элементы программирования на ассемблере. Программисты, работающие с Фортраном, обычно избегают использования ассемблера, за исключением случаев крайней необходимости, однако в этом — один из ключей к более полному использованию мощности ПК. Фортран обеспечивает удивительную простоту обращения к подпрограммам на ассемблере.
В гл. 3 речь идет о дисковой операционной системе. Все потенциальные возможности микроЭВМ реализуются через DOS, если вы знаете, как с ней обращаться.
В гл. 4 уделяется внимание программам, файлам и именам файлов. В главе имеются советы по редактированию и написанию фортран-программ и выбору их имени; рассматриваются также файлы, создаваемые фортран-программами, и вопросы, связанные с тем, как и где хранятся программы и файлы.
В момент появления микроЭВМ фортран-компиляторы были еще достаточно "грубыми", и условия, в которых оказывался программист, работающий на Фортране, могли существенно отличаться от тех, к которым он привык, общаясь с большой ЭВМ. Современные компиляторы гораздо более профессиональны и в меньшей степени подвержены ошибкам. В гл. 5 мы обращаемся к компиляции, компоновке и отладке программ на микроЭВМ.
Широко распространено неправильное мнение, что в памяти микроЭВМ числа хранятся с меньшей точностью, чем в мини- или больших ЭВМ, поэтому результат вычислений может содержать ошибку. Глава 6 ставит своей целью внести ясность в этот вопрос.
Глава 7 посвящена читаемости и поддержке программ. Производительность значительно повышается, если программы написаны так, что ошибки можно быстро обнаружить.
А как поступить с уже существующей программой, предназначенной для большой ЭВМ, и как перенести ее на ПК? Если программа отлажена на ПК, то как согласовать ее с другими системами? Какие проблемы могут возникнуть при организации обмена или изменении версии компилятора? Что делать со старыми программами, написанными на Фортране 66 (Фортране IV)? Сможет ли предложить что-либо новое версия Фортран 8х? Эти и другие вопросы поставлены в гл. 8, в которой рассматриваются организация обмена и переносимые программы; даны также и ответы на эти вопросы.
В гл. 9 обсуждается исполнение фортран-программы, а также рассматриваются вопросы, связанные с вызовом команд ОС из программы.
Одно из отличий большинства моделей микроЭВМ от мини- и больших ЭВМ заключается в меньшей емкости ОЗУ. Это может привести к затруднениям лишь для наиболее крупных программ, если вы не овладеете навыками эффективного использования памяти, чему посвящена гл. 10.
В гл. И'рассматриваются проблемы медленных компьютеров и оптимизации программ.
По мере овладения техникой работы с экранными текстами приходит чувство радости, связанное с разработкой на Фортране. В гл. 12 обсуждаются вопросы манипулирования с текстами, а в гл. 13 рассматриваются принципы отображения графического материала на экране.
Еще одна задача — получение распечатки текста и графики. При этом, однако, обычно возникает неразбериха и появляется разочарование: чрезвычайно мощные принтеры могут оказаться практически бесполезными, если в пакете программного обеспечения отсутствует соответствующий драйвер. В гл. 14 содержится достаточно много советов длл программиста Фортрана, а если вы еще только собираетесь приобретать принтер или плоттер, то тем более следует сначала прочесть эту главу.
Серьезные Программисты Фортрана должны принять за правило хранить прошедшие отладку и тестирование утилиты в библиотеке объектных модулей. Библиотеки утилит Фортрана имеются и в продаже. В гл. 15 речь идет о методах использования библиотек. Здесь же подробно рассмотрены библиотеки DOS, экранные и графические утилиты.
Наконец, в гл. 16 дан краткий обзор версий компиляторов, которые доступны программисту, работающему на микроЭВМ.
1.5. ЧЕГО НЕТ В КНИГЕ?
Эта книга не является пособием по программированию на Фортране. В продаже имеется много хороших учебников, и написание еще одного — это непродуктивная трата драгоценного времени. В 12
библиографическом списке мы приводим некоторые из таких книг и советуем вам, как серьезному программисту, иметь несколько из них на своей книжной полке.
В книге нет и такого описания MS DOS, которое устроило бы как пользователя, так и программиста. Этим аспектам посвящено большое количество книг. Мы полагаем, что и в данном случае вам понадобятся какие-то специальные книги.
Вместо всего этого в книге речь идет о промежуточных вопросах, ответы на которые найти труднее всего. Компьютерный жаргон, например, хорошо воспринимается опытными программистами, но наверняка покажется чуждым пользователю Фортрана. К тому же подлинный смысл оказывается запрятанным в совершенно неожиданных местах.
1.6. ЧТО ВАМ ПОНАДОБИТСЯ ПРИ ЧТЕНИИ?
Если вы еще только собираетесь приобретать микроЭВМ, то в книге вы найдете большой объем информации, которая окажется бесценной при выборе ПК и периферийных устройств, а также позволит, как мы надеемся, существенно сэкономить ваши средства. Чтобы извлечь максимальную пользу из книги, вы должны иметь доступ к ПК, работающему в среде MS DOS или PC DOS, текстовый редактор, создающий текстовые файлы в "^документальном" или "системном" формате, любую версию фортран-компилятора из перечисленных в гл. 16 и ассемблер. На разных моделях ПК мы с успехом использовали WordStar, Microsoft FORTRAN и Microsoft Macro Assembler. Обсуждение экранной графики проводится на базе системы GEM, любой вариант которой создает необходимую среду, а процедуры, содержащиеся в тексте книги, обеспечивают доступ к устройствам (аналогично можно использовать и GSX — предыдущий программный продукт фирмы Digital Research). Существует ряд других графических программных продуктов, согласованных с большинством фортран-компиляторов, причем диапазон предоставляемых средств слабо зависит от особенностей версий. Поэтому основные рекомендации по работе с графикой сохраняют силу при любой версии продукта, тем более при наличии пакета разработчика Microsoft Windows ISV (Independent Software Vendor's).
Печатающие устройства, пожалуй, можно считать роскошью: любой матричный принтер, желательно Epson-совместимый, находится на грани необходимости. При покупке плоттера выбирайте модель, совместимую с графическим языком Hewlett Packard Graphics Language (HPGL).
Оба автора имеют многолетний опыт использования Фортрана и более пяти лет работы на ПК. В книге нашло отражение наиболее существенное из этого опыта. Однако мы не может претендовать на всезнайство: предлагаемые в настоящее время

ОГЛАВЛЕНИЕ
Глава 1. Почему именно Фортран и персональные ЭВМ?........ 5
1.1. Почему именно 'Фортран? ...........................5
1.2. Почему именно персональные ЭВМ?.....................6
1.3. Итак, зачем написана эта книга?.......................9
1.4. Что можно найти в книге?..........................11
1.5. Чего нет в книге? ...............................12
1.6. Что вам понадобится при чтении? .....................13
1.7. Аннотированный список литературы....................14
Глава 2. Архитектура микроэвм .........................17
2.1. Введение..................................... 17
2.2. Загрузка и запуск исполняемой программы................ 19
2.3. Определения .................................. 21
2.4. Регистры..................................... 25
2.5. Регистры данных................................ 2
2.6. Регистр состояния ............................... 28
2.7. Вызов подпрограммы ассемблера из фортран-программы........ 30
2.8. Аннотированный список литературы.................... 38
Глава 3. Дисковая операционная система....................40
3.1. Введение.....................................40
3.2. PC/MS DOS I, 2, 3, ... — что они делают, их история ........42
3.3. Будущее.......................................46
3.4. Структура DOS.............................
3.5. Функции программного прерывания DOS................51
3.6. Примеры использования функций прерывания DOS ..........52
Глава 4. Программы, файлы и имена файлов .................60
4.1. Введение..................................... 60
4.2. Гибкие и жесткие диски........................... 60
4.3. Как файлы хранятся на диске........................ 61
4.4. Имена файлов ................................. 63
4.5. Создание и редактирование исходных программ и файлов
данных..............,..........................65
4.6. Файлы Фортрана...............................67
4.7. Вопросы, связанные с DOS..........................69
4.8. Функции DOS и файлы...........................70
Глава 5. Компиляция, компоновка и отладка .................80
5.1. Что такое компилятор? ............................80
5.2. Что делает компилятор Фортрана?.....................81
5.3. Что делает компоновщик? ..........................84
5.4. Параметры компиляции............................ 85
5.5. Оптимизирующие компиляторы.......................86
5.6. Организация рабочих дисков.........................88
5.7. Отладка.....................................89
5.8. Каковы требования к отладчику высокого уровня? ...........90
5.9. Другие утилиты общего назначения в отладчиках............94
5.10. Отладчик Codeview фирмы Microsoft ...................95
5.11. Заключение ..................................96
Глава 6. Точность, ошибки и правильный результат.............97
6.1. Почему данные хранятся в различном формате?.............97
6.2. Ошибки при обработке чисел ....................... 102
6.3. Примеры.................................... 103
6.4. Библиотечное математическое обеспечение компиляторов
Фортрана ..........."........................... 106
6.5. Заключение.................................. 108
Глава 7. Читаемость и поддержка программ................. 108
7.1. Что такое читаемая и поддерживаемая программы?.......... 109
7.2. Комментарии ................................. 110
7.3. Скобки, структура программы и применение пробелов........ 113
7.4. Встроенные функции ............................ 116
7.5. IF...THEN ELSE ENDIF............................ 117
7.6. Имена переменных.............................. 120
7.7. Подпрограммы ................................ 121
7.8. Списки параметров вместо блоков COMMON.............. 124
7.9. Метки и размещение операторов ..................... 126
7.10. Заключение ................................. 127
Глава 8. Организация обмена и переносимые программы......... 128
8.1. Введение.................................... 128
8.2. Линии связи ................................. 129
8.3. Переход от дисков 5,25 дюйма к дискам 3,5 дюйма
и обратно...................................... 132
8.4. Эмуляция терминала ............................ 132
8.5. Линии связи общего назначения ..................... 134
8.6. Некоторые непредвиденные трудности.................. 137
8.7. Переносимые программы.......................... 138
8.8. Точность программы после переноса................... 141
8.9. Изменение стандарта Фортрана...................... 142
8.10. Фортран 8х ................................. 144
Глава 9. Вызов фортран-программы и других интерфейсов DOS..... 145
9.1. DOS и командные файлы ......................... 145
9.2. Переназначение ввода-вывода....................... 146
9.3. Другие применения переназначения ................... 148
9.4. Использование "окружения" ........................ 150
9.5. Определение имен файлов с помощью командной строки...... 150
9.6. Программа на ассемблере для фиксации "хвоста" команды ..... 152
9.7. Управление файлами DOS из фортран-программы .......... 154
9.8. Краткое описание подпрограммы DLDIRE.ASM ............ 156
Глава 10. Эффективное использование памяти ............... 157
10.1. Введение................................... 157
10.2. Компилятор................................. 159
10.3. Сегментная память — сердце микропроцессора
в компьютерах с DOS ......................-........ 161
10.4. Модели памяти при программировании на ПК............ 163
10.5. Реализация моделей памяти в версиях Фортрана для ПК..... 165
10.6. Эффективное использование пространства памяти.......... 167
10.7. Передача параметров и вызов подпрограмм в Фортране
фирмы Microsoft.................................. 170
10.8. Фрагменты программ............................ 171
10.9. Оверлейные структуры........................... 178
10.10. Проектирование программ с наилучшим использованием оверлейных структур ............................... 181
10.11. Оверлейные структуры и компоновка программ........... 181
10.12. Разновидность оверлейной структуры: создание подзадачи .... 183
10.13. Преимущества и недостатки порождаемых программ
по сравнению с оверлейными структурами.................. 1
10.14. Процессоры 80x86, наращенная и расширенная память.....
Глава 11. Работа на медленном компьютере................. 190
11.1. Введение................................... 19С
11.2. Аппаратные средства............................ 1
11.3. Разработка программы........................... 194
11.4. Утилита МАКЕ ............................... 196
11.5. Программирование с целью ускорения процесса компиляции ... 197
11.6. Выполнение программы.......................... 197
11.7. Вопросы программного обеспечения................... 198
11.8. Выбор компилятора............................. 200
11.9. Требования к исходной программе ................... 202
11.10. Выбор библиотеки............................. 203
11.11. Структуры данных ............................ 205
11.12. Оптимизация структур циклов ..................... 205
11.13. Операторы IF ............................... 208
11.14. Использование операторов DATA.................... 209
11.15. Использование функций......................... 211
11.16. Выбор алгоритма ............................. 212
11.17. Совершенствование операций ввода-вывода ............. 213
11.18. Использование дисков в качестве внешней памяти......... 214
11.19. Использование файлов прямого доступа................ 217
11.20. Организация дисков............................ 218
11.21. Заключение................................. 218
Глава 1 2. Работа с экраном: текстовые режимы............... 219
12.1. Введение................................... 219
12.2. Дисплей ................................... 220
12.3. Специальные экранные эффекты .................... 222
12.4. Использование ESC-последовательностей или функций BIOS
для создания экранных эффектов ....................... 227
12.5. Ввод данных в фортран-программу ................... 1
12.6. Считывание кодов клавиш ........................ 230
12.7. Вывод на экран............................... 231
12.8. Общие процедуры вывода строк..................... 'А
12.9. Позиционирование курсора........................ 236
12.10. Считывание с клавиатуры........................ 239
12.11. Общие принципы организации экранов ввода............ 242
12.12. Меню .................................... 244
12.13. Логическая последовательность экранов ввода............ 248
12.14. "Падающие" или "всплывающие" меню................ 249
12.15. Выбор клавиш для инициализации программных опций ..... 249
12.16. Общие вопросы ввода данных и редактирования.......... 250
Глава 13. Работа с экраном: графический режим............. 260
13.1. Введение................................... 260
13.2. Характеристики монитора......................... 261
13.3. Дампы экрана................................ 264
13.4. Характеристики графической системы ПК............... 266
13.5. Служебные функции общего назначения................ 266
13.6. Операции рисования............................ 267
13.7. Текстовые операции ............................ 270
13.8. Функции запроса..............................
13.9. Растровые операции и "переклеивание" ........>........ 2
13.10. Ввод графических данных.......................
13.11. Обращение к графической системе .................. 276
13.12. Графические системы GSX и GEM фирмы Digital Research . . . 277
Глава 14. Принтеры и плоттеры — в джунглях распечаток....... 278
14.1. Введение................................... 278
14.2. Распечатка текстов............................. 278
14.3. Двоичная графика на точечно-матричном принтере
и дамп экрана................................... 282
14.4. Пересылка отдельных спецсимволов................... 283
14.5. Загружаемые символы........................... 284
14.6. Сложные линии и табулирование.................... 285
14.7. Рисование с помощью битовой графики................ 286
14.8. Воспроизведение графических структур на
точечно-матричном принтере .......................... 288
14.9. Воспроизведение графических структур на плоттере......... 290
14.10. Типы плоттеров и перьев ........................ 291
14.11. Принципы программирования команд для плоттера ........ 293
14.12. Графический язык Hewlett Packard (HPGL)............. 299
14.13. Инициализация плоттера в HPGL................... 301
14.14. Типы линий в HPGL.......................... 303
14.15. Графические примитивы в HPGL ................... 304
14.16. Текст в HPGL............................... 305
14.17. Выбор выходных графических устройств............... 308
Глава 15. Библиотеки и утилиты Фортрана ................. 310
15.1. Введение................................... 310
15.2. Что такое библиотеки Фортрана?.................... 311
15.3. Почему нужно пользоваться библиотеками?.............. 313
15.4. Библиотечная файловая система..................... 313
15.5. Система GSX ................................ 314
15.6. Система GEM VDI............................. 316
15.7. Особенности программирования в среде GSX и GEM........ 317
15.8. Обеспечение доступа к GEM VDI и GSX с помощью
вызова через подпрограмму .....•...................... 318
15.9. Использование дисковой библиотеки графических утилит ..... 323
15.10. Содержание библиотеки графики ................... 324
15.11. Расширение библиотеки ...........".............. 326
15.12. Графический ввод............................. 327
15.13. Разработка прикладных программ, ориентированных
на GEM или Windows............................... 327
15.14. Демонстрационная программа графики................. 328
Гл а в а 16. Выбор фортран-компилятора .................... 234
16.1. Введение................................... 334
16.2. Пакеты фортран-компиляторов...................... 335
16.3. Другие виды системного программного обеспечения......... 342
Приложение 1. Таблица кодов ASCII .................... 343
Приложение 2. Отличия стандартов Фортрана............... 345
Приложение 3. Расширенные управляющие
последовательности VT52 .............................. 348

Hosted by uCoz