Предисловие редактора перевода | 5 |
Предисловие | 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 |
4.7. Упакованные данные | 85 |
4.8. Десятично-двоичные преобразования | 87 |
4.9. Десятичная арифметика | 89 |
4.10. Прерывания | 92 |
4.11. PSW | 94 |
Упражнения № 10 | 95 |
|
Глава 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. Опросить ввод-вывод (TIO) | 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. Программные прерывания | 224 |
7.13. Другие типы прерываний | 227 |
7.14. Команды перекодировки | 228 |
7.15. Редактирование | 230 |
7.16. Команда выполнить | 234 |
Упражнения № 18 | 235 |
|
Глава 8. Некоторые вопросы программирования | 237 |
|
8.1. Назначение программирования | 237 |
8.2. Логические схемы системы | 238 |
8.3. Логические схемы программ | 240 |
8.4. Подпрограммы | 244 |
8.5. Десятичные точки | 246 |
Упражнения № 19 | 249 |
8.6. Работа с пультом управления | 249 |
8.7. Файлы на магнитной ленте | 252 |
8.8. Группировка записей в блоки | 256 |
8.9. Файлы на устройствах с прямым доступом | 260 |
8.10. Индексно-последовательные наборы данных | 268 |
8.11. Языки программирования | 275 |
8.12. Управляющие программы | 278 |
8.13. Системные сервисные программы | 279 |
8.14. Операционные системы | 281 |
8.15. DOS. Присвоение символических имён устройствам |
ввода-вывода | 283 |
8.16. Управление заданиями в DOS | 285 |
8.17. Системы TOS и BOS | 292 |
8.18. Управляющие карты OS | 295 |
8.19. Каталогизированные процедуры | 298 |
8.20. Определение данных | 301 |
Упражнения № 20 | 305 |
|
Глава 9. Введение в PL/1 | 307 |
|
9.1. PL/1 | 307 |
9.2. Синтаксис | 310 |
9.3. Исходные данные | 312 |
9.4. Константы и переменные | 315 |
9.5. Данные, управляющие программой | 318 |
9.6. Арифметические выражения | 319 |
9.7. Операторы присваивания | 322 |
Упражнения № 21 | 323 |
9.8. Управление программой | 324 |
9.9. Ввод-вывод, управляемый списком | 326 |
9.10. Пример программы | 327 |
9.11. Операции сравнения | 329 |
9.12. Ввод-вывод, управляемый данными | 331 |
9.13. Оператор DISPLAY | 333 |
9.14. Ввод-вывод, управляемый редактированием | 333 |
9.15. Печать файлов | 338 |
Упражнения № 22 | 339 |
|
Глава 10. Как писать программу на языке PL/1 | 341 |
|
10.1. Встроенные функции | 341 |
10.2. Оператор ON | 342 |
10.3. Логические операции | 347 |
10.4. Ключевые слова | 350 |
10.5. Индексы | 351 |
10.6. Начальные значения | 354 |
10.7. Переменные типа метка | 357 |
Упражнения № 23 | 358 |
10.8. Группы | 360 |
10.9. Оператор DO | 362 |
Упражнения № 24 | 365 |
10.10. Индексирование в списках ввода-вывода | 366 |
10.11. Структуры | 367 |
10.12. Повторные определения | 370 |
10.13. Ввод-вывод записей | 373 |
10.14. Вынесение описателей за скобки | 377 |
Упражнения № 25 | 378 |
|
Глава 11. Более сложные элементы языка PL/1 | 380 |
|
11.1. Шаблоны | 380 |
11.2. Псевдопеременные | 384 |
11.3. Ввод-вывод с буфером | 385 |
11.4. Операторы GET и PUT STRING | 391 |
11.5. Обычные блоки | 392 |
Упражнения № 26 | 394 |
11.6. Функции | 395 |
11.7. Процедуры-подпрограммы | 398 |
11.8. Операторы ENTRY | 400 |
11.9. Дисковый ввод-вывод | 402 |
11.10. Классы памяти | 404 |
Упражнения № 27 | 406 |
|
Глава 12. Введение в Фортран | 407 |
|
12.1. Фортран | 407 |
12.2. Написание программ на Фортране | 408 |
12.3. Константы и переменные | 411 |
12.4. Арифметические выражения | 414 |
12.5. Операторы присваивания | 417 |
Упражнения № 28 | 418 |
12.6. Операторы управления | 420 |
Упражнения № 29 | 422 |
12.7. Ввод-вывод данных | 423 |
12.8. Предложения FORMAT | 425 |
12.9. Форматы входных данных | 429 |
12.10. Пример | 430 |
Упражнения № 30 | 431 |
|
Глава 13. Дополнительные операторы Фортрана | 436 |
|
13.1. Форматы буквенно-цифровых данных | 436 |
13.2. Кратность спецификаторов формата | 439 |
13.3. Ещё некоторые сведения о форматах | 443 |
Упражнения № 31 | 445 |
13.4. Индексы | 447 |
13.5. Операторы DO | 449 |
Упражнения № 32 | 452 |
13.6. Дополнительные операторы | 454 |
13.7. Работа с лентами и дисками | 459 |
13.8. Индексирование в списках ввода-вывода | 462 |
13.9. Предложение NAMELIST | 464 |
ёУпражнения № 33 | 466 |
|
Глава 14. Более сложные элементы Фортрана | 468 |
|
14.1. Комплексные переменные | 468 |
14.2. Логические данные и операторы | 470 |
ёУпражнения № 34 | 473 |
14.3. Оператор-функция | 474 |
14.4. Подпрограмма-функция | 476 |
Упражнения № 35 | 480 |
14.5. Подпрограммы | 481 |
14.6. Предложение COMMON | 488 |
14.7. Задание начальных значений | 491 |
Упражнения № 36 | 493 |
|
Глава 15. Введение в Кобол | 495 |
|
15.1. Программирование коммерческих задач | 495 |
15.2. Программа на Коболе | 497 |
15.3. Имена | 501 |
15.4. Раздел идентификаций | 504 |
15.5. Раздел оборудования | 506 |
15.6. Раздел данных | 508 |
15.7. Описание записи | 510 |
Упражнения № 37 | 517 |
15.8. Шаблоны отчёта | 519 |
15.9. Индексы | 521 |
15.10. Раздел процедур | 523 |
Упражнения № 38 | 527 |
15.11. Ввод-вывод | 529 |
15.12. Арифметические операции | 533 |
15.13. Условные операторы | 536 |
15.14. Пример программы | 538 |
Упражнения № 39 | 543 |
|
Глава 16. Дополнительные сведения о Коболе | 544 |
|
16.1. Проверка условий | 544 |
16.2. Уточнение имён | 547 |
16.3. Операторы PERFORM | 549 |
16.4. Дополнительные операторы Раздела процедур | 553 |
Упражнения № 40 | 557 |
16.5. Объявления | 557 |
16.6. Дисковые файлы | 559 |
16.7. Индексно-последовательные файлы | 560 |
16.8. Пример | 563 |
Упражнения № 41 | 564 |
16.9. Файлы с прямым доступом | 566 |
16.10. Файлы с относительной адресацией | 568 |
16.11. Управление вводом-выводом | 569 |
16.12. Подпрограммы | 571 |
16.13. Кобол уровня F | 576 |
Упражнения № 42 | 577 |
|
Глава 17. Язык Ассемблера | 579 |
|
17.1. Программирование в символических адресах | 579 |
17.2. Пример | 581 |
17.3. Язык Ассемблера IBM-360 | 585 |
17.4. Продолжение примера | 587 |
17.5. Термы и выражения | 589 |
17.6. Команда USING | 592 |
17.7. Машинные команды | 594 |
Упражнения № 43 | 598 |
17.8. Константы | 599 |
17.9. Адресные константы | 604 |
17.10. Определения данных | 605 |
Упражнения № 44 | 607 |
17.11. Предложения управления трансляцией | 609 |
17.12. Счётчик адреса | 612 |
17.13. Разделение программ на секции | 615 |
Упражнения № 45 | 618 |
|
Глава 18. Макрокоманды DOS | 621 |
|
18.1. Программирование ввода-вывода | 621 |
18.2. Определения файлов в DOS | 622 |
18.3. Макрокоманды для последовательных файлов | 623 |
18.4. Макрокоманда DTFCD | 629 |
18.5. Макрокоманды DTFPR и DTFMT | 632 |
Упражнения № 46 | 637 |
18.6. Использование фиктивной секции | 639 |
18.7. Макрокоманда DTFSD | 644 |
18.8. Макрокоманды DTFCN и DTFSR | 645 |
18.9. Рабочие файлы | 649 |
Упражнения № 47 | 654 |
18.10. Макрокоманда DTFDA | 656 |
18.11. Макрокоманда DTFIS | 663 |
18.12. Модули IOCS | 671 |
18.13. Физический уровень IOCS | 677 |
18.14. Пример | 679 |
Упражнения № 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 |
Приложение E. Основные сведения о языке PL/1 | 788 |
Приложение F. Основные сведения о Фортране | 800 |
Приложение G. Основные сведения о Коболе | 810 |
Приложение Н. Программа-монитор | 818 |
Приложение I. Управляющие символы | 826 |
Приложение J. Основные сведения о языке Ассемблера | 827 |
Приложение К. Основные сведения о DOS | 832 |
Приложение L. Основные сведения об OS | 838 |
|
Ответы к упражнениям | 846 |
Библиография | 852 |
Словарь | 853 |
Предметный указатель | 857 |