Скотт Р. и Сондак Н. ПЛ/1 для программистов. Пер. с англ. Э. А. Трахтенгерца. М., «Статистика», 1977. 224 с. с ал. ПЛ/1 — язык программирования, который можно применять для программирования широкого класса задач. В языке ПЛ/1 заложены возможности применения его для машин четвертого поколения. Данная книга представляет собой учебное пособие. Оно ориентировано на конкретную реализацию языка для системы 1ВМ-360, транслятор которой может быть воспроизведен на советских машинах семейства ЕС. Круг читателей — все, кто занимается математическим обеспечением ЭВМ, как практики, так и иаучиые работники, а также учащиеся но данной специальности,
ПРЕДИСЛОВИЕ К РУССКОМУ ИЗДАНИЮ
Большой опыт эксплуатации электронных вычислительных машин показал, что для их успешного применения необходима система языков, обеспечивающая запись алгоритмов решения широкого класса задач.
В разработке такой системы языков наметилось три тенденции. Сторонники первой считают, что основу системы должен составлять язык с тщательно отобранным и сравнительно небольшим набором объектов и операций, допускающий возможности расширения и имеющий строго формализованные синтаксис и семантику. В этом случае любая языковая система, ориентированная на решение некоторого класса задач, должна представлять собой надстройку над базовым языком, образованную средствами языка
Сторонники второй тенденции считают, что должна существовать система языков специализированного и общего назначения. Пользователи при написании сложных программ выбирают те языки, на которых удобнее писать их отдельные части. В процессе трансляции программа, написанная на различных языках, собирается в единую программу на внутреннем языке машины.
Наконец, сторонники третьей тенденции пытаются создать единый язык, который обладал бы большим запасом конкретных изобразительных средств, обеспечивающих описание всех основных операций и объектов, употребляемых в задачах сегодняшнего дня.
Создатели языка ПЛ/1 — сотрудники фирмы IBM и Ассоциации пользователей машинами IBM — убежденные сторонники третьей тенденции. С момента своего возникновения язык претерпел большие изменения. Эти изменения были вызваны как опытом применения языка и создания трансляторов, так и ожесточенной критикой его противников. К настоящему времени язык стабилизировался и приобретает все большую популярность.
Язык ПЛ/1 появился после создания целой группы весьма совершенных языков и, конечно, они оказали на него большое влияние. Но наряду с уже сложившимися идеями и понятиями ПЛ/1 вобрал в себя новые, такие, как привлечение широкого набора типов данных и создание из них сложных структур, организация программной реакции на прерывания, возможность организации параллельных вычислений, преобразование программ в процессе трансляции и т. п. Эти особенности ПЛ/1 в сочетании с весьма совершенными трансляторами обеспечивают большие возможности и удобства написания программ для решения широкого класса задач, включая программы, работающие в реальном масштабе времени.
Книга представляет собой перевод руководства по программированию на ПЛ/1. В связи с тем что язык включен в математическое обеспечение ЕС ЭВМ и область его применения очень широка, книга Р. Скотта и Н. Сондака представляет интерес для круга специалистов, связанных с применением вычислительной техники.
Э. А. ТРАХТЕНГЕРЦ
ОГЛАВЛЕНИЕ
Предисловие к русскому изданию.................. 5
Предисловие............................ 7
Глава 1. Почему ПЛ/1?.................... 9
1.1. Введение............................ 9
1.2. Краткая история создания вычислительной техники ....... 9
1.3. Архитектура вычислительной машины............. 13
1.4. История программирования .......,.,,....,,,, j§
1.5. Алгоритмические языки.................... 19
1.6. Языки для решения экономических задач............ 21
1.7. Возникновение языка программирования ПЛ/1......... 24
Глава 2. ПЛ/1 — быстрое начало......,........ 26
2.1. Введение........................... 26
2.2. Наборы символов....................... 82
2.3. Основной синтаксис ПЛ/1..................., 33
2.4. Константы, переменные и оператор DECLARE (ОБЪЯВИТЬ). . 36
2.5. Выражения и оператор присваивания.............. 40
2.6. Операторы управления................., ... 43
2.7. Список ввода-вывода...................... 50
2.8. Примеры законченных программ на ПЛ/1............ 55
2.9. Упражнения.......................... 69
Глава 3. Основные конструкции языка............. 75
3.1. Синтаксис........................... 75
3.2. Элементы организации программ................ 76
3.3. Идентификаторы........................ 78
3.4. Типы данных ......................... 78
3.5. Оператор DECLARE (ОБЪЯВИТЬ) и DEFAULT (УМОЛЧАТЬ) 80
3.6. Упражнения......................... 86
Глава 4. Выражения, присваивание значений и унравление программой ............................. 90
4.1. Введение........................... 90
4.2. Выражения и операторы присваивания, содержащие арифметические данные.......................... 92
4.3. Выражения и операторы присваивания, содержащие строки данных 94
4.4. Встроенные функции для строк данных.............97
4.5. Выражения типа массива и присваивание значений ........ 100
4.6. Оператор GO ТО........................ 103
4.7. Оператор DO.........................104
4.8. Оператор IF.........................109
4.9. Упражнения . ,........................110
Глава 5. Ввод и вывод данных . ................118
5.1. Введение...........................118
5.2. Ввод-вывод данных, управляемый списком............119
5.3. Ввод-вывод, управляемый данными...............120
5.4. Ввод-вывод, управляемый редактированием............122
5.5. Дополнительные сведения о вводе-выводе, управляемом редактированием.......................... . 128
5.6. Операторы GET и PUT STRING...............131
5.7. Операторы DISPLAY-REPLY..................133
5.8. Упражнения.........................134
Глава 6. Блоки PROCEDURE и BEGIN............138
6.1. Введение...........................138
6.2. Организация и ход выполнения программы ............139
6.3. Область действия имен..................... 146
6.4. Распределение памяти.....................148
6.5. Методы вызова процедур....................153
6.6. Переменные размерности...................159
6.7. Рекурсивный вызов процедур.........«........16!
6.8. Упражнения ........................163
Глава 7. Дополнительные сведения о языке ПЛ/1.........169
7.1. Определение по соответствию и по совмещению.........169
7.2. Прерывания программы.....................171
7.3. Шаблоны . .........................176
7.4. Структуры........................... 180
7.5. Некоторые дополнительные возможности ПЛ/1, не рассматриваемые
в настоящей книге......................187
7.6. Упражнения..........................190
Приложения............................194
Ответы к коротким упражнениям..................210


Hosted by uCoz