Математика | ||||
Прогрраммирование на IBM /360-К.ДжермейнПрогрраммирование на IBM /360-К.Джермейн Учебное пособие по обучению (и самообучению) программированию для вычислительной системы IBM/360. Помимо описания общих принципов работы ЭВМ и программирования читатель здесь найдет — практически полное описание архитектуры IBM/360, т. е. описание ее структуры и функционирования с точки зрения программиста; — описание типовых устройств ввода — вывода; — описание общих принципов работы с массивами данных (файлами); — описание основ организации математического обеспечения, в частности описание языков управления заданиями для различных используемых на IBM/360 операционных систем; — описание наиболее распространенных языков программирования (PL/1, Фортран, Кобол, язык Ассемблера). Книга представляет большой интерес для специалистов по вычислительной технике и программированию' Она будет полезна научным работникам, преподавателям, аспирантам в студентам многих специальностей. | ||||
ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА IBM/360 — самое многочисленное семейство ЭВМ третьего поколения. Период с 1965 года, когда начались первые поставки этих машин, можно без преувеличения назвать «эпохой IBM/360». Интересно отметить, что новая разработка фирмы IBM — система IBM/370, которую ждали с нетерпением и интересом во всем мире, оказалась «всего-навсего» дальнейшим развитием системы IBM/360. Она сохраняет преемственность в отношении всего огромного программного хозяйства, накопленного своей предшественницей. Система математического, точнее программного, обеспечения для IBM/360 беспрецедентна по своим масштабам и возможностям. В этой книге автор ставит своей целью дать необходимые сведения, которые позволили бы легко ориентироваться в фирменных материалах по программированию для IBM/360. Естественно, что эти сведения оказались весьма обширными и в определенном смысле разнородными. На одном полюсе — описание устройства для набивки перфокарт — клавишный перфоратор IBM 029, на другом — описание языков программирования как проблемно-, так и машинно-ориентированных (PL/1, Фортран, Кобол, язык Ассемблера). Описанию языковых средств и возможностей операционных систем автор предпосылает полное описание аппаратных возможностей IBM/360. В книге освещаются структура вычислительной системы в целом, структура центрального процессора, система его команд и форматы данных, с которыми он работает; логика работы каналов и устройств ввода — вывода; система прерываний, позволяющая координировать одновременную работу центрального процессора с многочисленными устройствами ввода — вывода и выполняющая много других функций. Наибольшую ценность для советского читателя, видимо, представляют сведения о различных операционных системах, употребляемых на IBM/360 и образующих среду, в которой работает программист с предоставленными ему языковыми средствами. Особенно полезным будет знакомство с организацией работы с входными и выходными массивами данных и их структурой. Таким образом, книгу характеризует комплексный подход к проблеме и большая широта охвата предмета. В отличие от фир- менных материалов по программированию для IBM/360, представляющих собой сложную систему множества документов, каждый из которых освещает определенный аспект программистской науки, здесь по существу освещена система программирования, так сказать, в целом. Не приходится сомневаться, что даже ветераны программирования найдут в книге много полезного и интересного. Однако нужно помнить, что автор рассчитывает на новичка, не имеющего специальной подготовки по вычислительной технике, и это побуждает его вести изложение просто и доходчиво, с большим количеством примеров, не забывая и о принципиальной стороне дела. * *• * Как всегда в подобных переводах, едва ли не главную трудность составляла терминологическая проблема. В данном случае положение усугублялось широтой излагаемого материала и необходимостью хоть как-то согласовывать терминологию различных разделов. В некоторых вопросах пришлось пойти на известное новаторство, естественно, не имея гарантий, что оно будет оправдано последующей практикой. В частности, наряду с принятым термином «оператор» в качестве эквивалента английского термина statement употребляется термин «предложение». Причина — загруженность русского слова «оператор» массой других значений, отличных от statement. Вместо привычной плавающей и фиксированной запятой в книге говорится о плавающей и фиксированной точке. Здесь переводчики пошли по дороге, проторенной переводом книги «Универсальный язык программирования PL/I» («Мир», М., 1968). В некоторых случаях, когда частота повторения какого-либо словосочетания превосходила определенный предел, оно заменялось более коротким словосочетанием или просто одним словом. Так возник, например, контроллер вместо «устройства управления устройством ввода — вывода» и «спецификатор формата» вместо «элемента списка формата». Остается надеяться, что отдельные терминологические трудности не помешают читателю разобраться в сути дела. В заключение заметим, что оригинал книги изобиловал опечатками и переводчики (в переводе книги участвовали В. П. Кузнецов, В. Г. Лесюк, Т. В. Макарова, Н. Ф. Музылева, Ж. П. Сватков, Л. А. Какунин) взяли на себя смелость их исправить, не делая специальных оговорок. В то же время переводчики не имели возможности прорешать все предлагаемые автором упражнения и в основном сохранили ответы оригинала. В. С. Штаркман ПРЕДИСЛОВИЕ Эта книга была задумана как учебник, адресованный тем, кто хочет изучить программирование для системы IBM/360 самостоятельно или на соответствующих курсах. Для ее понимания практически не требуется никаких предварительных сведений по вычислительной технике (в частности, сведений о перфокартах). Требования к математической подготовке читателя также весьма скромны — за исключением нескольких задач, э'ти требования не выходят за пределы элементарного курса алгебры. Книга охватывает применения машин как для экономических задач, так и для научных исследований, что нашло отражение в подборе примеров и упражнений для самостоятельного р ешения. Материал расположен в порядке, который можно считать традиционным для подобного рода курсов по программированию. Описани языков программирования — PL/1, Фортрана, Кобола и языка Ассемблера (автокода) — ведется независимо в отдельных главах, так что читатель без всякого ущерба может пропустить те или иные разделы. Книга написана применительно к Моделям 25, 30, 40, 50, 65, 75 и 85. Ее можно использовать и для Моделей 44, 67, 91 и 95, хотя в ней не оговорено, какие команды из общего набора отсутствуют на Модели 44 или какими особенностями обладают прерывания на Моделях 91 и 95. Не рассматриваются каналы «память — память» Моделей 91 и 95, дополнительные возможности Модели 44, а также специальные средства Модели 67 для работы в режиме разделения времени. Совершенно оставлена в стороне Модель 2Q. В основном сведения о Дисковой Операционной Системе (DOS) и Операционной Системе (OS) разнесены по разным главам, и поэтому здесь читатель также может ограничиться лишь интересующими его разделами. Возможности Ленточной Опера- ционной Системы (TOS) и Базовой Операционной Системы (BOS) описаны практически исчерпывающе. В .меньшей мере затронуто Базовое Программное Обеспечение (BPS), и совсем не освещены Система Программирования Модели 44 и Система Разделения Времени Модели 67, хотя они во многих отношениях аналогичны OS. Цель данной книги — сообщить читателям тот круг сведений, которые дадут ему возможность легко и быстро ориентироваться в множестве фирменных документов по IBM/360. Поэтому, в частности, автор и не пытался описать языки программирования во всех деталях. Читателю, приступающему к изучению этого курса, рекомендуется обзавестись линейкой для рисования логических схем программ и бланками для программирования на различных языках. Желательно также — если это возможно, — чтобы он располагал каким-либо комплектом фирменных руководств по Системе IBM/360. Сент-Пол, Миннесота Кларенс Б. Джармейн ОГЛАВЛЕНИЕ Предисловие редактора перевода................. ? Предисловие .......................... 7 Глава 1. Перфокарта...................... 9 1.1. Герман Холлерит ................. 9 1.2. Перфокарта IBM.................. 10 1.3. Клавишный перфоратор IBM-029 .......... 12 1.4. Устройства для единичных записей .......>.. 19 1.5. Коммутационная доска.............•. . 21 Упражнения № 1 ................. 26 Глава 2. Математические понятия................ 28 2.1. Вещественные числа................ 28 2.2. Индексы ..................... 29 2.3. Системы счисления ................ 30 Упражнения № 2................. 33 2.4. Плавающая точка................. 33 2.5. Булева алгебра.................. 35 2.6. Дополнение.................... 36 2.7. Ошибки округления................ 37 Упражнения № 3................. 38 2.8. Статистика .................... 39 2.9. Матрицы ..................... 41 Упражнения № 4................. 44 2.10. Логарифмы.................... 45 2.11. Тригонометрия.................. 47 2.12. Комплексные числа................ 48 Упражнения № 5................. 49 Глава 3. Вычислительные машины................ 50 3.1. Программы и блок-схемы ............. 50 3.2. Байты ...................... 52 3.3. Буквенно-цифровая информация.......... 54 3.4. Код ASCII .................... 55 Упражнения № 6................. 56 3.5. Память на магнитных сердечниках ........ 57 3.6. Поля и слова................... 60 3.7. Регистры..................... 61 3.8. Управление.................... 62 3.9. Система 360 ................... 63 Упражнения № 7................. 64 Глава 4. Команды........................ 65 4.1. Команды IBM-360................. 65 4.2. Числа с фиксированной точкой'.......... 66 4.3. Команды с фиксированной точкой......... 67 Упражнения № 8................. 72 4.4. Переходы..................... 72 4.5. Программа-монитор................ 77 Упражнения № 9................. 82 4.6. Формат SS (память — память)........... 83 v 4.7. Упакованные данные ............... 85 4.8. Десятично-двоичные преобразования........ 87 4.9. Десятичная арифметика.............. 89 4.10. Прерывания.................... 92 4.11. PSW....................... 94 Упражнения № 10................. 95 •J Глава 5. Программирование ввода — вывода . „......... 98 5.1. Основные понятия ввода — вывода......... 98 5.2. Скорость передачи данных ............ 101 5.3. Программа канала ................ 102 5.4. Связь между CPU и каналом........... 106 5.5. Прерывания ................... 109 5.6. Байты состояния и уточненного состояния..... 111 5.7. Пример...................... 114 Упражнения № 11 ................ 117 5.8. Начальная загрузка программ........... 118 5.9. CCW....................... 119 5.10. Байт состояния канала.............. 122 5.11. Начать ввод — вывод............... 124 5.12. Остановить ввод — вывод..........." . . 127 5.13. Опросить канал (ТСН) .............. 127 5.14. Опросить ввод — вывод (ТЮ)........... 128 5.15. Прерывания от ввода — вывода.......... 130 Упражнения № 12................ 132 Глава 6. Устройства ввода — вывода............... 134 6.1. Интерфейс .................... 134 6.2. Устройство чтения перфокарт 2501 ........ 137 6.3. Устройство чтения — перфорации карт 2520 .... 141 6.4. Устройство чтения — перфорации карт 1442 .... 145 6.5. Устройство чтения — перфорации карт 2540 .... 149 6.6. Пультовая пишущая машинка 1052 ........ 155 6.7. Построчно печатающее устройство......... 158 Упражнения № 13 ................ 163 6.8. Лентопротяжные устройства............ 165 6.9. Функционирование лентопротяжных устройств . . . 172 6.10. Память на дисках 2311 .............. 179 6.11. Организация данных в запоминающих устройствах с прямым доступом................. 182 6.12. Коды команд для DASD ............. 186 6.13. Байты состояния и уточненного состояния для DASD 195 6.14. Другие запоминающие устройства с прямым доступом 198 Упражнения № 14 ................ 200 Глава 7. Дополнительные команды................ 202 7.1. Числа с плавающей точкой............ 202 7.2. Команды с плавающей точкой........... 203 Упражнения № 15 ................ 206 7.3. Команды, выполняющие действия над полусловами 208 7.4. Команды формата RS ............... 209 7.5. Команды формата SI ............... 210 7.6. Логические команды ............... 211 Упражнения № 16 ................ 212 7.7. Команды переходов................ 214 7.8. Команды сдвига.................. 216 7.9. Некоторые дополнительные команды ....... 218 7.10. Привилегированные команды ........... 220 7.11. Средства защиты ................. 221 Упражнения № 17 ................ 222 7.12. Программные прерывания............. Упражнения № 48................ 683 18.15. Область связи.................. 685 18.16. Макрокоманды супервизора ........... 687 18.17. Межпрограммные связи............. 690 18.18. Рекурсивная программа.............. 695 18.19. Язык макроопределений............. 698 Упражнения № 49................ 701 Глава 19. Макрокоманды OS................... 703 19.1. Операционная система.............. 703 19.2. Ввод — вывод.................. 703 19.3. Блок управления данными............ 705 19.4. Спецификации DCB во время исполнения программы 710 19.5. Буферизация для методов доступа с очередями . . . 712 19.6. QSAM ..................... 715 19.7. QISAM..................... 721 19.8. Несколько примеров............... 726 Упражнения № 50................ 731 19.9. Буферизация для базисного метода доступа .... 732 19.10. BSAM ..................... 734 19.11. BISAM .................... 740 19.12. BDAM ..................... 743 Упражнения № 51................ 748 19.13. Макрокоманды супервизора ........... 749 19.14. Простейшие межпрограммные связи........ 753 19.15. Динамические связи программ.......... 755 Упражнения № 52................ 757 Приложение А. Коды......'Ч................ 758 Приложение В. Набор команд.................. 764 Приложение С. Ввод — вывод.................. 778 Приложение D. Основные сведения о процессоре.......... 782 Приложение Е. Основные сведения о языке PL/I.......... 788 Приложение F. Основные сведения о Фортране.......... 800 Приложение G. Основные сведения о Коболе........... 810 Приложение Н. Программа-монитор ............... 818 Приложение I. Управляющие символы.............. 826 Приложение J. Основные сведения о языке Ассемблера....... 827 Приложение К. Основные сведения о DOS............ 832 Приложение L. Основные сведения об OS............. 838 Ответы к упражнениям...................... 846 Библиография.......................... 852 Словарь............................. 853 Предметный указатель...................... 224 7.13. Другие типы прерываний............. 227 7.14. Команды перекодировки.............. 228 7.15. Редактирование.................. 230 7.16. Команда выполнить................ 234 Упражнения № 18 ................ 235 / / Глава 8. Некоторые вопросы программирования.......... 237 8.1. Назначение программирования........... 237 8.2. Логические схемы системы............. 238 Цена: 300руб. |
||||