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

/ИТ-книги

Языки программирования. Практический сравнительный анализ — Бен-Ари М.
Языки программирования. Практический сравнительный анализ
Бен-Ари М.
год издания — 2000, кол-во страниц — 366, ISBN — 5-03-003314-9, 0-471-95846-8, тираж — 5000, язык — русский, тип обложки — мягк., масса книги — 490 гр., издательство — Мир
КНИГА СНЯТА С ПРОДАЖИ
Understanding Programming Languages
M. Ben-Ari

John Wiley & Sons 1998

Пер. с англ. В. С. Штаркман, М. Н. Яковлевой

Книга рекомендована методическим советом программистских кафедр факультета ВМК МГУ в качестве учебника по языкам программирования

Формат 70x100 1/16. Бумага офсетная. Печать офсетная
ключевые слова — программирован, подпрограмм, указател, полиморфизм, наследован, исключен, параллелизм, декомпозиц, объектно-ориентиров, c++, ada95, pascal, fortran, pl/1, lisp, prolog, java, вычислимост, семантик, компилятор, компоновщик, загрузчик, отладчик

В книге рассматриваются базовые понятия языков программирования: среды программирования, подпрограммы, указатели, полиморфизм и наследование, исключения, параллелизм и декомпозиция программы. Обсуждается языковая поддержка объектно-ориентированного программирования. Приведённые языковые конструкции богато иллюстрированы примерами. Основное внимание уделяется языкам C++ и Ada 95, однако не остаются забытыми Pascal, Fortran, PL/1, Lisp и другие. Концепции функционального и логического программирования показаны на примере языков ML и Prolog. Отдельная глава посвящена модели и языку Java.

Для студентов, изучающих языки программирования, преподавателей и профессиональных программистов.


Выбор языка программирования — один из наиболее важных факторов, влияющих на качество программной системы. К сожалению, многие программисты не обладают необходимой подготовкой в области языков: они привязаны к одному, «родному», языку и не умеют анализировать языковые конструкции.

Из этой книги вы узнаете:

  • Какие альтернативы имеются в распоряжении разработчика языка
  • Как следует использовать языковые конструкции, чтобы обеспечить надёжность и читаемость программ
  • Как реализуются языковые конструкции
  • Какова роль языка в отображении абстракции

В книге сравниваются конструкции языков С и Ada в терминах уровней абстракции, рассматривается поддержка объектно-ориентированного программирования в C++ и Ada 95.

функциональные (ML) и логические (Prolog) языки программирования представлены для демонстрации непроцедурных концепций. Последняя глава посвящена особенностям языка Java.

Каждая глава завершается серией вопросов и интересных упражнений исследовательского характера.

ОГЛАВЛЕНИЕ

Предисловие5
 
ЧАСТЬ 1. ВВЕДЕНИЕ В ЯЗЫКИ ПРОГРАММИРОВАНИЯ
 
Глава 1. Что такое языки программирования11
1.1. Некорректный вопрос11
1.2. Процедурные языки13
1.3. Языки, ориентированные на данные18
1.4. Объектно-ориентированные языки22
1.5. Непроцедурные языки23
1.6. Стандартизация24
1.7. Архитектура компьютера25
1.8. *Вычислимость28
1.9. Упражнения29
 
Глава 2. Элементы языков программирования30
2.1. Синтаксис30
2.2. * Семантика32
2.3. Данные34
2.4. Оператор присваивания35
2.5. Контроль соответствия типов36
2.6. Управляющие операторы37
2.7. Подпрограммы37
2.8. Модули38
2.9. Упражнения39
 
Глава 3. Среды программирования41
3.1. Редактор42
3.2. Компилятор42
3.3. Библиотекарь45
3.4. Компоновщик46
3.5. Загрузчик47
3.6. Отладчик47
3.7. Профилировщик48
3.8. Средства тестирования49
3.9. Средства конфигурирования49
3.10. Интерпретаторы50
3.11. Упражнения51
 
ЧАСТЬ 2. ОСНОВНЫЕ ПОНЯТИЯ
 
Глава 4. Элементарные типы данных53
4.1. Целочисленные типы53
4.2. Типы перечисления58
4.3. Символьный тип62
4.4. Булев тип63
4.5. * Подтипы64
4.6. * Производные типы66
4.7. Выражения67
4.8. Операторы присваивания71
4.9. Упражнения73
 
Глава 5. Составные типы данных75
5.1. Записи75
5.2. Массивы78
5.3. Массивы и контроль соответствия типов81
5.4. * Подтипы массивов в языке Ada84
5.5. Строковый тип85
5.6. Многомерные массивы87
5.7. Реализация массивов88
5.8. * Спецификация представления92
5.9. Упражнения96
 
Глава б. Управляющие структуры99
6.1. Операторы switch и case99
6.2. Условные операторы104
6.3. Операторы цикла109
6.4. Цикл for112
6.5. «Часовые»118
6.6. * Инварианты119
6.7. Операторы goto121
6.8. Упражнения123
 
Глава 7. Подпрограммы124
7.1. Подпрограммы: процедуры и функции124
7.2. Параметры126
7.3. Передача параметров подпрограмме128
7.4. Блочная структура138
7.5. Рекурсия144
7.6. Стековая архитектура146
7.7. Ещё о стековой архитектуре153
7.8. * Реализация на процессоре Intel 8086156
7.9. Упражнения158
 
ЧАСТЬ 3. БОЛЕЕ СЛОЖНЫЕ ПОНЯТИЯ
 
Глава 8. Указатели160
8.1. Указательные типы160
8.2. Структуры данных167
8.3. Распределение памяти173
8.4. Алгоритмы распределения динамической памяти176
8.5. Упражнения179
 
Глава 9. Вещественные числа181
9.1. Представление вещественных чисел181
9.2. Языковая поддержка вещественных чисел185
9.3. Три смертных греха189
9.4. * Вещественные типы в языке Ada191
9.5. Упражнения192
 
Глава 10. Полиморфизм194
10.1. Преобразование типов195
10.2. Перегрузка196
10.3. Родовые (настраиваемые) сегменты197
10.4. Вариантные записи201
10.5. Динамическая диспетчеризация205
10.6. Упражнения206
 
Глава 11. Исключительные ситуации207
11.1. Требования обработки исключительных ситуаций207
11.2. Исключения в языке PL/1209
11.3. Исключения в Ada209
11.4. Исключения в C++212
11.5. Обработка ошибок в языке Eiffel214
11.6. Упражнения217
 
Глава 12. Параллелизм219
12.1. Что такое параллелизм?219
12.2. Общая память220
12.3. Проблема взаимных исключений222
12.4. Мониторы и защищённые переменные224
12.5. Передача сообщений225
12.6. Язык параллельного программирования occam226
12.7. Рандеву в языке Ada227
12.8. Linda229
12.9. Упражнения231
 
ЧАСТЬ 4. ПРОГРАММИРОВАНИЕ БОЛЬШИХ СИСТЕМ
 
Глава 13. Декомпозиция программ233
13.1. Раздельная компиляция234
13.2. Почему необходимы модули?239
13.3. Пакеты в языке Ada240
13.4. Абстрактные типы данных в языке Ada245
13.5. Как писать модули на языке C++251
13.6. Упражнения254
 
Глава 14. Объектно-ориентированное программирование256
14.1. Объектно-ориентированное проектирование256
14.2. Объектно-ориентированное программирование на языке C++259
14.3. Наследование261
14.4. Динамический полиморфизм в языке C++263
14.5. Объектно-ориентированное программирование на языке Ada 95270
14.6. Упражнения276
 
Глава 15. Ещё об объектно-ориентированном программировании277
15.1. Структурированные классы278
15.2. Доступ к приватным компонентам285
15.3. Данные класса290
15.4. Язык программирования Eiffel293
15.5. Проектные соображения300
15.6. Методы динамического полиморфизма304
15.7. Упражнения305
 
ЧАСТЬ 5. НЕПРОЦЕДУРНЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ
 
Глава 16. Функциональное программирование307
16.1. Почему именно функциональное программирование?307
16.2. Функции308
16.3. Составные типы310
16.4. Функции более высокого порядка313
16.5. Ленивые и жадные вычисления315
16.6. Исключения317
16.7. Среда318
16.8. Упражнения319
 
Глава 17. Логическое программирование321
17.1. Чистое логическое программирование322
17.2. Унификация325
17.3. Язык Prolog327
17.4. Более сложные понятия логического программирования335
17.5. Упражнения337
 
Глава 18. Java338
18.1. Модель Java338
18.2. Язык Java340
18.3. Семантика ссылки341
18.4. Полиморфные структуры данных345
18.5. Инкапсуляция346
18.6. Параллелизм348
18.7. Библиотеки Java350
18.8. Упражнения351
 
Приложение А. Где получить компиляторы?353
Приложение Б. Библиографический список355
Предметный указатель358

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

  1. Языки программирования. Концепции и принципы, Кауфман B. Ш., 1993
  2. Универсальные языки программирования. Семантический подход, Калинин А. Г., Мацкевич И. В., 1991
  3. Программирование на языке Ада, Вегнер П., 1983
  4. Язык программирования Эль-76. Принципы построения языка и руководство к пользованию. — 2-е изд. испр. и доп., Пентковский В. М., 1989
  5. Сравнительный курс языка PL/1 (на основе алгола-60), Безбородов Ю. М., 1980

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