Математика | ||||
Перевод с английского А.К. Ефремова, С.Л. Ляликова Редакция литературы по информатике и вычислительной технике Уорд Т., Бромхед Э. Фортран и искусство программирования персональных ЭВМ: Пер. с англ. — М.: Радио и связь, 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 Цена: 300руб. |
||||