Главная » 2013»Июль»5 » Языки программирования: разработка и реализация. 4-е издание
20:42
Языки программирования: разработка и реализация. 4-е издание
В книге Т. Пратта и М. Зелковица «Языки программирования: разработка и реализация», авторы которой - известные американские специалисты в области языков программирования, приведены общие сведения о разработке и реализации языков программирования, основы формальных грамматик и конечных автоматов - тематических моделей, использующихся для определения и реализации языков программирования. Эта база нужна программисту высокой квалификации для создания производительных и устойчивых к ошибкам программ. Смысл изложения будут понятен пользователю, знакомому с процедурным и объектно-ориентированным языком. Данным изданием смогут воспользоваться студенты высших учебных заведений и программисты разной квалификации.
Название: Языки программирования: разработка и реализация. 4-е издание Автор: Пратт Т., Зелковиц М. Издательство: Питер Год: 2002 Страниц: 688 Формат: DJVU Размер: 5,85 МБ ISBN: 5-318-00189-0 Качество: Отличное
Содержание:
От издательства Предисловие научного редактора перевода Предисловие к русскому изданию Глава 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. Обзор языка C 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. Обзор языка Java 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. Конечные автоматы 3.3.3. Обзор языка Perl 3.3.4. Автоматы с магазинной памятью 3.3.5. Общие алгоритмы грамматического разбора 3.4. Грамматический разбор на основе метода рекурсивного спуска 3.5. Обзор языка Pascal 3.6. Рекомендуемая литература 3.7. Задачи и упражнения Глава 4. Моделирование свойств языка 4.1. Формальные свойства языков 4.1.1. Иерархия грамматик Хомского 4.1.2. Неразрешимость 4.1.3. Сложность алгоритма 4.2. Семантика языка 4.2.1. Атрибутивные грамматики 4.2.2. Денотационная семантика 4.2.3. Обзор языка ML 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. Обзор языка FORTRAN 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. Определение типов с параметрами 6.5. Обзор языка С++ 6.6. Рекомендуемая литература 6.7. Задачи и упражнения Глава 7. Наследование 7.1. Повторное рассмотрение абстрактных типов данных 7.2. Наследование 7.2.1. Производные классы 7.2.2. Методы 7.2.3. Абстрактные классы 7.2.4. Обзор языка Smalltalk 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. Обзор языка Prolog 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. Объявление forward в языке Pascal 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. Статическое управление памятью 10.4. Управление кучей 10.4.1. Обзор языка LISP 10.4.2. Элементы фиксированного размера 10.4.3. Элементы переменного размера 10.5. Рекомендуемая литература 10.6. Задачи и упражнения Глава 11. Распределенная обработка данных 11.1. Различные варианты управления подпрограммами 11.1.1. Исключения и обработчики исключений 11.1.2. Сопрограммы 11.1.3. Планируемые подпрограммы 11.2. Параллельное программирование 11.2.1. Параллельное выполнение 11.2.2. Охраняемые команды 11.2.3. Обзор языка Ada 11.2.4. Задачи 11.2.5. Синхронизация задач 11.3. Развитие аппаратной части компьютера 11.3.1. Конструирование процессоров 11.3.2. Конструирование систем 11.4. Архитектура программного обеспечения 11.4.1. Сохраняемые данные и системы транзакций 11.4.2. Сети и клиент-серверные вычисления 11.5. Рекомендуемая литература 11.6. Задачи и упражнения Глава 12. Сетевое программирование 12.1. Настольные издательские системы 12.1.1. Подготовка документов в LATEX 12.1.2. WYSIWlG-редакторы 12.1.3. Postscript 12.1.4. Виртуальная машина Postscript 12.2. Всемирная паутина WWW 12.2.1. Интернет 12.2.2. Сценарии CGI 12.2.3. Апплеты Java 12.2.4. XML 12.3. Рекомендуемая литература 12.4. Задачи и упражнения Приложение. Обзоры языков П.1. Ada П.2. C П.3. C++ П.4. FORTRAN П.5. JAVA П.6. USP П.7. ML П.8. Pascal П.9. Perl П.10. Postscript П.11. Prolog П.12. Smalltalk П.13. Рекомендуемая литература Библиография Алфавитный указатель