Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)
Описание файла
DJVU-файл из архива "Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла
Теренс Пратт, Марвин Зелковиц Языки программирования: разработка и реализация. 4-е издание Под общей редакцией А. Матросова ББК 32.973-018.1 УДК 681.3.06 Пратт Т., Зелковиц М. П70 Языки программирования: разработка и реализация / Под общей ред. А. Матросова, — СПб.: Питер, 2002. — 688 с.: ил. ! ЯВИ 5-318-00189-0 В книге известных американских специалистов в области языков программирования Т. Пратта и М. Зелковица рассматриваются общие концепции разработки и реализации языков программирования, атакже основы формальных грамматик и конечных автоматов — математических моделей, используемых для определения и реализации языков программирования. Это именно та база, которая необходима высококвалифицированному программисту для создания производительных и устойчивых к ошибкам программ.
Изложение материала в книге не привязано ни к какому конкретному языку программирования, хотя предполагается, что читатель знаком хотя бы с одним процедурным и с одним объектно-ориентированным языком. Книга будет полезна студентам высших учебных заведений, а также программистам любой квалификации. © Ргепйсе На!1, 1пс., 2001, 1996, 1984, 1975 © Перевод на русский язык, ЗАО Издательский дом «Питер», 2002 © Издание на русском языке, оформление, ЗАО Издательский дом «Питер», 2002 Права не изделие получены ло соглашению с Ргелбсе На!1 Все права защищены. Никакая часть денной книги ие может быть воспроизведена е «азой бы то ии было форме без пись- ме«ного разрешении владельцев авторских прав.
Информации, содержащаяся е данной книге, получена из источников, рассматриваемых издательством хах надежные, тем не менее, имея е виду возможные челсеечес«ие или технические ошибки, издательство ие может гарантировать абсолютную точность и полноту приводимых сведений и ие несет ответственность за возможные ошибки, связанные с использованием книги. ЗВ1ч 5-318-00189-0 !ЗВМ 0-13-02?678-2 (англ.) ООО «Питер Принт».
196105, Санкт-Петербург, ул. Благодатная, д. 67в. Лицензия ИД № 05784 от 07.09.01. Назоговая льгота — общероссийский классификатор продукции ОК 005-93, том 2; 953005 — литература учебная. Подписано е печать 20.06.02. Формат 70х100П 6, Уел. п. л. 55,47. Тираж 4000 зкз. Заказ № 705. Отпечатано с готовых диапозитивов и ФГУП «Печатный лвор» им. Л. М. Горького Министерства РФ по делам печати, телерадиовещания и средств массовых коммуникаций. ! 971! О, Санкт-Петербург, Чкаловский и р., 15. Главный редактор Заведующий редакцией Руководитель проекта Научный редактор Переводчик Литературный редактор Художник Иллюстрации Корректоры Верстка Е. Сщроганова И. Корнеев А. Васильев А.
Малгросов А.Михайлова А. 7'елов Н. Биржаков М. Жданова М. Одинокова, Н. Рои!ина А. Келле-Пелле Краткое содержание От издательства Предисловие научного редактора перевода Предисловие к русскому изданию Глава 1. Проблемы разработки языка . Глава 2. Влияние машинной архитектуры Глава 3. Вопросы трансляции языка . Глава 4. Моделирование свойств языка. Глава 5.
Элементарные типы данных . Глава 6. Инкапсуляция Глава ?. Наследование Глава 8. Управление последовательностью действий .. Глава 9. Управление подпрограммами Глава 10. Управление памятью Глава 11. Распределенная обработка данных. Глава 12. Сетевое программирование Приложение. Обзоры языков Библиография Алфавитный указатель 10 „13 16 64 92 142 181 236 303 ... 332 384 459 483 530 ... 564 ... 669 675 Содержание От издательства Предисловие научного редактора перевода Предисловие к русскому изданию .
Глава 1. Проблемы разработки языка 1.1. Зачем изучать языки программирования? 1.2, Краткая история языков программирования 1.2.1. Разработка первых языков .. 1.2.2. Эволюция архитектуры программного обеспечения .. 1.2.3. Области применения . 1.3. Роль языков программирования..... 1.3.1. Какой язык следует считать хорошим? . 1.3,2. Парадигмы языка ....,...... 1.3.3, Стандартизация языка . 1.3.4. Интернационализация . 1.4. Среда программирования . 1.4.1.
Влияние на разработку языка 1.4.2. Среда разработки . 1.4.3. Языки управления заданиями и языки создания процессов ... 1.5. Обзор языка С ............,..., .......,.....,...........,................. 1.6. Рекомендуемая литература ., 1.7. Задачи и упражнения, Глава 2. Влияние машинной архитектуры .. 2.1. Структура и принципы работы компьютера 2.1.1. Аппаратные средства компьютера 2.1.2. Программно-аппаратный компьютер . 2.1.3. Трансляторы и виртуальная архитектура .. 2.2. Виртуальные компьютеры и время связывания 2.2.1.
Виртуальные компьютеры и реализация языка 2.2.2. Иерархия виртуальных компьютеров 2.2.3. Связывание и время связывания 2.2.4. Обзор языка 1ача 2,3. Рекомендуемая литература . 2.4. Задачи и упражнения .. „,. Глава 3. Вопросы трансляции языка 3.1. Синтаксис языка программирования. 3.1.1. Общие синтаксические критерии 3.1.2.
Синтаксические элементы языка 3.1.3. Общая структура программы-подпрограммы . 3,2. Этапы трансляции . 3,2.1. Анализ исходной программы . 3,2.2. Синтез обьектной программы 3.3. Формальные модели трансляции . 3.3.1. НФБ-грамматика 3.3.2. Конечные автоматы 1О !! 1З . 16 16 19 19 23 Зо .
34 37 4З 47 51 53 53 56 .....57 58 61 61 . 64 64 65 71 73 78 79 80 82 87 89 90 . 92 .. 92 93 97 101 105 106 110 112 114 123 Содержание 3.3.3. Обзор языка Рег! . 3.3.4. Автоматы с магазинной памятью 3.3.5. Общие алгоритмы грамматического разбора 3.4. Грамматический разбор на основе метода рекурсивного спуска ... 3.5. Обзор языка Рааса! .. 3.6.
Рекомендуемая литература . 3.7. Задачи и упражнения Глава 4. Моделирование свойств языка 4.1. Формальные свойства языков 4.! .1. Иерархия грамматик Хомского 4.1.2. Неразрешимость ........... 4.1.3. Сложность алгоритма 4.2. Семантика языка . 4.2,1. Атрибутивные грамматики ., 4.2.2. Денотационная семантика . 4.2.3. Обзор языка МО 4.2.4. Проверка правильности программы 4.2.5. Алгебраические типы данных .
4.3. Рекомендуемая литература . 4.4. Задачи и упражнения Глава 5. Элементарные типы данных 5.1. Свойства типов и обьектов . 5.1.1. Обьекты данных, переменные и константы . 5.1.2. Типы данных 5.1.3. Обьявления . 5.1.4. Контрольтипов и преобразование типов . 5.1.5.
Присваивание и инициализация . 5.2. Скалярные типы данных .. 5,2.1. Численные типы данных 5.2.2, Перечисления. 5.2.3. Логические (бупевы) значения . 5.2.4. Символы .. 5.3. Составные типы данных 5,3.1. Строки символов 5.3.2. Указатели и обьекты данных, конструируемые программистом ...
5.3.3, Файлы и ввод-вывод 5.4. Обзор языка ЕОВТЯА!4 . 5,5, Рекомендуемая литература . 5.6. Задачи и упражнения . Глава 6. Инкапсуляция 6,1. Структурированные типы данных 6.1.1. Структурированные обьекты данных и типы данных 6,1.2. Спецификация типов структур данных . 6.1.3. Реализация типов структур данных . 6.1.4. Объявления структур данных и контроль типов 6.1.5. Векторы и массивы 6.1.6. Записи 6.1.7.
Списки 6.1.8. Множества. 6.1.9. Выполняемые обьекты данных. 6.2. Абстрактные типы данных . 6.2.1. Эволюция понятия типов данных. 6.2.2. Сокрытие информации 6.3. Инкапсуляция при помощи подпрограмм . 6.3.1. Подпрограммы как абстрактные операции . 6.3.2. Определение и вызов подпрограмм. 6.3.3.
Определения подпрограмм как обьектов данных ..... 6.4. Определения типов, 6.4.1. Эквивалентность типов . 6.4.2. Определение типов с параметрами 127 1З0 .. 1Зг ... 133 135 1З8 139 142 . 143 144 147 153 156 159 161 168 169 174 177 177 181 181 181 186 193 195 201 205 205 213 214 215 216 217 .....
220 223 229 231 ... 232 236 238 238 .238 240 245 ..... 246 257 265 ..... 268 272 272 ...... 273 274 276 . 277 ...,.. 279 . 284 . 285 287 ... 291 8 Содержание 6.5, Обзор языка С++ . 6.6. Рекомендуемая литература 6.7. Задачи и упражнения .. Глава 7. Наследование . 7.1. Повторное рассмотрение абстрактных типов данных 7.2. Наследование . 7.2.1. Производные классы 7.2.2. Методы 7.2.3. Абстрактные классы .
7.2.4. Обзор языка Б)па!Иай .... 7.2.5. Объекты и сообщения, 7.2.6. Концепции абстракций . 7.3. Полиморфизм . 7.4. Рекомендуемая литература 7.5. Задачи и упражнения .. Глава 8. Управление последовательностью действий....... 8.1. Явное и неявное управление последовательностью действий 8,2. Управление последовательностью действий при вычислении арифметических выражений 8.2.1.
Древовидное представление 8.2.2. Представление выражений во время выполнения программы ....... 8.3. Управление последовательностью выполнения операторов 8.3.1, Базовые операторы . 8.3.2. Структурированное управление последовательностью действий ... 8,3.3. Первичные программы .. 8.4. Последовательность вычисления неарифметических выражений ......,...., 8.4.1. Обзор языка Рго~оц 8.4.2.
Сопоставление с образцом .. 8.4.3. Унификация 8.4.4. Откат 8.4.5. Принцип резолюции 8.5. Рекомендуемая литература 8.6. Задачи и упражнения .. Глава 9. Управление подпрограммами 9.1. Управление последовательностью подпрограмм .. 9.1.1. Простые подпрограммы вызов-возврат 9.1.2. Рекурсивные подпрограммы 9.1,3. Объявление 1опуаго в языке Рааса! . 9.2.
Атрибуты управления данными .......,................ 9.2.1. Имена и среды ссылок . 9.2.2. Статическая и динамическая области видимости 9.2,3. Блочная структура 9.2.4. Локальные данные и среды локальных ссылок 9.3. Передача параметров . 9.3.1. Фактические и формальные параметры .. 9.3.2. Методы передачи параметров . 9.3.3. Семантика передачи параметров .
9.3.4. Реализация передачи параметров 9,4. Явно определяемая общая среда . 9.4.1. Динамическая область видимости 9.4.2. Статическая область видимости и блочная структура . 9.5. Рекомендуемая литература . 9.6. Задачи и упражнения. Глава 10. Управление памятью . 10.1. Размещаемые в памяти элементы .... 10.2. Память, управляемая программистом и системой 10.3. Статическое управление памятью. 293 .295 295 зоз 304 311 313 .