|
Сравнительное изучение языков программирования |
Хигман Б. |
год издания — 1974, кол-во страниц — 206, язык — русский, тип обложки — мягк., масса книги — 230 гр., издательство — Мир |
серия — Математическое обеспечение ЭВМ |
цена: 500.00 руб | | | | |
|
Сохранность книги — хорошая
COMPUTER MONOGRAPHS General Editor: Stanley Gill A COMPARATIVE STUDY OF PROGRAMMING LANGUAGES
BRYAN HIGMAN Reader in Computer Science, Institute of Computer Science, London
MACDONALD, LONDON AND AMERICAN ELSEVIER, NEW YORK, 1969
Пер. с англ. Л. В. Ухова
Формат 60x90 1/16. Бумага типографская №2 |
ключевые слова — язык, программирован, алгол, фортран, кобол, эвм, симула-6, программист, лингвист, синтаксис, семантик, алгоритм, рекурс, кодослов, лямбда-обозначен, литерал, прерыван, контекстно-свободн, ассемблер, автокод, джовиал, лисп, процедурн, ipl-v, pl/i |
В книге систематизированы общие принципы, лежащие в основе различных языков программирования. Её можно рассматривать и как вводный курс при изучении конкретных языков, в частности языков АЛГОЛ, ФОРТРАН и КОБОЛ. Довольно подробно рассматриваются основные понятия и конструкции языков программирования. Изложение материала иллюстрируется большим количеством примеров на самых различных языках.
Книга будет полезна студентам, аспирантам и специалистам, занимающимся математическим обеспечением ЭВМ. Она также представляет значительный интерес для читателей, которые хотят познакомиться со структурой языков в целом и с использованием языков как средства общения.
Ещё в пятидесятых годах стало очевидным, что в условиях распространения вычислительных машин и привлечения к программированию большого числа людей нельзя обойтись программированием в машинном коде. Появилась насущная необходимость в языках программирования, которые были бы ориентированы на создание удобств для пользователей, обладающих различной квалификацией и не обязательно знакомых с вычислительными машинами. Различные коллективы программистов стали разрабатывать и внедрять такие языки, и довольно быстро возникла ситуация, когда количество языков программирования исчислялось сотнями, что чрезвычайно осложнило обмен программами и алгоритмами между разными вычислительными центрами. Поэтому очень скоро приобрела актуальность проблема унификации языков программирования.
Важным шагом в направлении такой унификации явилось принятие на международной конференции в Париже (январь 1960 г.) языка АЛГОЛ-60, который объединил многие удачные свойства существовавших ранее языков программирования. Этот язык получил широкое распространение, и в начале шестидесятых годов существовало мнение, что, расширив АЛГОЛ-60, можно получить универсальный язык программирования, пригодный для любых приложений. Однако практика показала, что оптимальной областью применения языка АЛГОЛ-60 является описание алгоритмов численного анализа, причём и такие алгоритмы иногда целесообразнее описывать на языке ФОРТРАН, который имеет более простую логическую структуру и предусматривает развитые канонизированные средства для задания операций ввода и вывода информации.
Со временем устоялось несколько унифицированных международных языков программирования, ориентированных на достаточно широкие, но всё же ограниченные области приложения и в какой-то степени на определённые профессиональные и лингвистические навыки пользователей. В частности, широкую популярность приобрел язык КОБОЛ, достаточно близкий к тому естественному языку, на котором обычно формулируются и решаются экономические задачи. Получил распространение язык ЛИСП, предназначенный для программирования алгоритмов обработки списков. По-видимому, и в ближайшие годы математическое обеспечение современных вычислительных машин будет включать различные языки программирования, хотя в настоящее время в качестве единых универсальных языков программирования предлагаются языки PL/I, СИМУЛА-67 и АЛГОЛ-68.
Поскольку разные языки программирования развивались независимо, неискушённый программист при переходе к изучению нового языка часто теряется и с трудом находит аналогии между новыми лингвистическими возможностями и уже знакомыми ему методами программирования. Существует обширная литература по языкам программирования, но в большинстве исследований и пособий либо описываются отдельные конкретные языки, либо проводится сравнение каких-то двух языков. В этой связи особый интерес представляет предлагаемая вниманию читателя книга Б. Хигмана, в которой проводится сравнительное изучение широкого класса различных языков программирования. Автор пользуется общими лингвистическими понятиями, над которыми не довлеет специфика конкретных языков программирования, и, ориентируясь на эти понятия, с единой точки зрения рассматривает различные языки в порядке их исторического появления. Прослеживается эволюция языков, преемственность и последовательное усложнение лингвистических особенностей; при этом особое внимание концентрируется на появлении в языках принципиально новых выразительных средств. Основным языкам программирования посвящены отдельные главы, из которых можно получить фактические сведения о языках. Хотя, как правило, эти сведения недостаточны для того, чтобы работать с языками на практике, они будут весьма полезны человеку, уже владеющему одним-двумя языками программирования и желающему быстро оценить, не вдаваясь в технические детали, новые возможности незнакомого языка.
Книга Б. Хигмана характеризуется сочетанием глубины и живости подачи материала. Наглядности изложения способствует удачный подбор примеров, в которых проводятся параллели между языками программирования и естественными языками. Усвоенный при изучении этой книги систематический подход к языкам программирования может помочь читателям быстрее ориентироваться и в тех языках, которые здесь не рассматриваются.
Предисловие редактора перевода В. В. Мартынюк
|
ОГЛАВЛЕНИЕПредисловие редактора перевода | 5 | | I. ВВЕДЕНИЕ | 7 | | 1.1. Язык примеров | 8 | 1.2. Предварительные определения | 9 | 1.3. Наши задачи | 11 | 1.4. Некоторые вопросы эксплуатации | 13 | | 2. ОБЩЕЕ ПОНЯТИЕ ЯЗЫКА | 14 | | 2.1. Естественные и искусственные языки | 15 | 2.2. Синтаксис и семантика | 16 | 2.3. Обмен алгоритмами | 17 | 2.4. Сущность вычисления | 19 | 2.5. Чистые процедуры | 20 | 2.6. Классификация языков | 22 | 2.7. Значение имён в языках программирования | 24 | | 3. РЕКУРСИЯ | 27 | | 3.1. Сущность рекурсии | 27 | 3.2. Приложения рекурсии | 29 | 3.3. Некоторые замечания | 30 | | 4. ПОЛЬСКАЯ ЗАПИСЬ | 33 | | 5. ТЕОРИЯ ИМЁН | 36 | | 5.1. Имена и кодослова | 36 | 5.2. Лямбда-обозначения | 38 | 5.3. Присваивание как универсальная команда | 39 | 5.4. Дополнительный смысл присваивания | 40 | 5.5. Литералы | 43 | 5.6. Формальная теория имён | 45 | | 6. ЯЗЫК И СИСТЕМА | 49 | | 6.1. Семантика формата | 50 | 6.2. Аварийные прерывания | 53 | 6.3. Системное программирование | 54 | | 7. СТРУКТУРА ФОРМАЛЬНЫХ ЯЗЫКОВ | 55 | | 7.1. Основные принципы формальной грамматики | 55 | 7.2. Дальнейшее развитие | 58 | 7.3. Контекстно-свободные и другие грамматики | 60 | 7.4. Псевдоконтекстно-свободные языки | 62 | 7.5. Упрощенные свойства грамматик | 65 | 7.6. Формальная семантика | 66 | | 8. МАКРОГЕНЕРАТОР | 73 | | 8.1. Синтаксис | 74 | 8.2. Семантика | 75 | 8.3. Несколько дополнительных замечаний о языке | 78 | 8.4. Примеры | 80 | | 9. ОТ МАШИННОГО КОДА К ФОРТРАНУ | 85 | | 9.1. Машинный код | 86 | 9.2. Код ассемблера | 87 | 9.3. Грамматика машинных языков | 89 | 9.4. Ранние автокоды | 90 | 9.5. Сравнение Автокода и Фортрана | 93 | 9.6. Джовиал | 96 | | 10. КОБОЛ | 97 | | 10.1. Структура программы | 98 | 10.2. Раздел оборудования | 99 | 10.3. Дальнейшие подробности | 101 | 10.4. Раздел данных | 103 | 10.5. Раздел Процедур | 106 | | 11. АЛГОЛ | 110 | | 11.1. Дальнейшее развитие понятия процедуры | 113 | 11.2. Различные способы обращения к параметрам | 116 | 11.3. Возможности более высокого уровня | 118 | 11.4. Критика | 120 | | 12. ЯЗЫКИ ОБРАБОТКИ СПИСКОВ | 122 | | 12.1. Система обозначений в языке Лисп | 123 | 12.2. Процедурные языки обработки списков | 124 | 12.3. Язык IPL-V | 126 | 12.4. Дальнейшее развитие | 129 | | 13. ЯЗЫКИ CPL И PL/I | 130 | | 13.1. Первые впечатления | 130 | 13.2. Методы разработки языков | 132 | 13.3. Конкретные требования | 134 | 13.4. Общая синтаксическая структура | 137 | 13.5. Несколько конкретных замечаний | 137 | 13.6. Типы | 142 | 13 7. Описатели | 146 | 13.8. Описатели в процедурах | 150 | 13.9. Другие адресные типы | 153 | 13.10. Возможности использования циклов | 155 | 13.11. Специфические свойства | 157 | | 14. ВВОД И ВЫВОД | 160 | | 14.1. Ранние языки | 161 | 14.2. Языки Алгол и АЛГОЛ/IFIP | 163 | 14.3. Язык Алгол/АСМ | 166 | 14.4. Ввод и вывод в языке PL/I | 170 | 14.5. Ввод и вывод в языке CPL | 174 | 14.6. Заключительные замечания | 174 | | 15. РАЗНОЕ О ЯЗЫКАХ ПРОГРАММИРОВАНИЯ | 177 | | 15.1. Специальные языки | 177 | 15.2. Новые возможности | 179 | 15.3. Подмножества английского языка | 184 | 15.4. Алгоритмическая теория языка Росса | 187 | | СПИСОК ЛИТЕРАТУРЫ | 197 |
|
Книги на ту же тему- Трансляция языков программирования, Вайнгартен Ф., 1977
- Языки программирования. Концепции и принципы, Кауфман B. Ш., 1993
- Универсальные языки программирования. Семантический подход, Калинин А. Г., Мацкевич И. В., 1991
- Современные языки и технологии параллельного программирования: Учебник, Гергель В. П., 2012
- Практика программирования на Фортране: Упражнения с комментариями, Дрейфус М., Ганглоф К., 1978
- Сравнительный курс языка PL/1 (на основе алгола-60), Безбородов Ю. М., 1980
- Язык программирования Эль-76. Принципы построения языка и руководство к пользованию. — 2-е изд. испр. и доп., Пентковский В. М., 1989
- Программирование на языке Ада, Вегнер П., 1983
- Язык программирования C. Лекции и упражнения. — 6-е изд., Прата С., 2015
- Индивидуальная отладка программ, Безбородов Ю. М., 1982
|
|
|