КнигоПровод.Ru25.11.2024

/ИТ-книги

Сравнительное изучение языков программирования — Хигман Б.
Сравнительное изучение языков программирования
Хигман Б.
год издания — 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-V126
12.4. Дальнейшее развитие129
 
13. ЯЗЫКИ CPL И PL/I130
 
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. Языки Алгол и АЛГОЛ/IFIP163
14.3. Язык Алгол/АСМ166
14.4. Ввод и вывод в языке PL/I170
14.5. Ввод и вывод в языке CPL174
14.6. Заключительные замечания174
 
15. РАЗНОЕ О ЯЗЫКАХ ПРОГРАММИРОВАНИЯ177
 
15.1. Специальные языки177
15.2. Новые возможности179
15.3. Подмножества английского языка184
15.4. Алгоритмическая теория языка Росса187
 
СПИСОК ЛИТЕРАТУРЫ197

Книги на ту же тему

  1. Трансляция языков программирования, Вайнгартен Ф., 1977
  2. Языки программирования. Концепции и принципы, Кауфман B. Ш., 1993
  3. Универсальные языки программирования. Семантический подход, Калинин А. Г., Мацкевич И. В., 1991
  4. Современные языки и технологии параллельного программирования: Учебник, Гергель В. П., 2012
  5. Практика программирования на Фортране: Упражнения с комментариями, Дрейфус М., Ганглоф К., 1978
  6. Сравнительный курс языка PL/1 (на основе алгола-60), Безбородов Ю. М., 1980
  7. Язык программирования Эль-76. Принципы построения языка и руководство к пользованию. — 2-е изд. испр. и доп., Пентковский В. М., 1989
  8. Программирование на языке Ада, Вегнер П., 1983
  9. Язык программирования C. Лекции и упражнения. — 6-е изд., Прата С., 2015
  10. Индивидуальная отладка программ, Безбородов Ю. М., 1982

© 1913—2013 КнигоПровод.Ruhttp://knigoprovod.ru