Книга представляет собой монографию по системному программированию. После краткой характеристики основных элементов современных систем программирования: библиотек, языков программирования и трансляторов, - изложены принципы построения трансляторов для языков символического кодирования, макроязыков и процедурно-ориентированных языков высокого уровня. Описаны наиболее распространенные прямые и синтаксические методы трансляции, а также некоторые способы автоматизации разработки трансляторов.
Книга предназначена для студентов старших курсов, аспирантов и программистов, специализирующихся в области разработки системного математического обеспечения я в смежных областях. Содержание
Введение Глава 1. Элементы системы программирования 1.1. Библиотека стандартных подпрограмм 1.1.1. Назначение и структура библиотечных подпрограмм 1.1.2. Компилирующие и интерпретирующие системы 1.1.3. Современные тенденции в организации библиотеки 1.1.4. Особенности стандартных подпрограмм в мультипрограммных системах 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.3.5. Сегментация программы и данных 1.3.6. Структура транслятора ТА-2М 1.3.7. Характеристики некоторых отечественных трансляторов 1.3.8. Средства отладки Глава 2. Организация, хранение и поиск данных 2.1. Структуры и хранение данных 2.1.1. Структуры данных 2.1.2. Структуры хранения 2.1.3. Отображение структур данных в структуры хранения 2.2. Хранение и поиск данных в таблицах 2.2.1. Таблицы 2.2.2. Неупорядоченные таблицы 2.2.3. Упорядоченные таблицы 2.3. Таблицы с вычисляемыми входами 2.3.1. Таблицы с прямым доступом 2.3.2. Таблицы со случайным перемешиванием 2.3.3. Перемешивание с цепочками переполнения 2.3.4. Функции расстановки Глава 3. Ассемблеры 3.1. Языки символического кодирования 3.1.1. Области применения и средства языков символического кодирования 3.1.2. Машинные команды 3.1.3. Выражения 3.1.4. Команды ассемблера 3.2. Ассемблер мнемокода 3.2.1. Схема трансляции 3.2.2. Структура двухпросмотрового ассемблера 3.2.3. Таблицы ассемблера 3.2.4. Первый просмотр. Выявление имен 3.2.5. Распределение памяти для литералов 3.2.6. Листинг и объектный модуль 3.2.7. Второй просмотр. Генерирование машинных команд 3.2.8. Особенности ассемблера для многосекционных программ 3.2.9. Использование памяти разных уровней при трансляции 3.3. Макроассемблер 3.3.1. Макроязык 3.3.2. Макроопределения 3.3.3. Макрогенератор 3.3.4. Таблицы макрогенератора 3.3.5. Блок управления трансляцией 3.3.6. Блок обработки макроопределений 3.3.7. Блок обработки макрокоманд Глава 4. Прямые методы трансляции 4.1. Процедурно-ориентированные языки 4.1.1. Алгол-60 4.1.2. Фортран 4.1.3. ПЛ/1 4.1.4. Алгол-68 4.1.5. Задачи трансляции 4.2. Лексический анализ 4.2.1. Задачи лексического анализа 4.2.2. Перекодирование входной программы 4.2.3. Перевод служебных слов, идентификаторов и констант 4.2.4. Алгоритм перевода числовых констант 4.2.5. Контроль входной программы на этапе лексического анализа 4.3. Трансляция выражений 4.3.1. Польская запись 4.3.2. Алгоритм перевода обратной польской записи в машинные команды 4.3.3. Перевод простых арифметических и логических выражений в обратную польскую запись 4.3.4. Переменные с индексами 4.3.5. Указатели функций 4.3.6. Условные выражения 4.3.7. Особенности алгоритма перевода условных выражений в обратную польскую запись 4.3.8. Алгоритм трансляции выражений 4.4. Трансляция операторов 4.4.1. Промежуточная обратная польская запись операторов 4.4.2. Оператор присваивания 4.4.3. Оператор перехода 4.4.4. Условный оператор 4.4.5. Оператор цикла 4.4.6. Алгоритм перевода оператора цикла в обратную польскую запись 4.5. Блоки и трансляция описаний 4.5.1. Блочная структура программы и способы распределения памяти 4.5.2. Статическое распределение памяти 4.5.3. Использование стека для динамического распределения памяти 4.5.4. Перевод в обратную польскую запись блоков и описании типа 4.5.5. Трансляция описаний массивов 4.5.6. Обработка меток и описаний переключателей 4.6. Трансляция процедур 4.6.1. Способы трансляции процедур 4.6.2. Обратная польская запись оператора процедуры 4.6.3. Алгоритм трансляции операторов процедур 4.6.4. Особенности трансляции описаний процедур 4.7. Оптимизация объектной программы и транслятора 4.7.1. Задачи оптимизации 4.7.2. Оптимизирующие трансляторы 4.7.3. Быстрые трансляторы Глава 5. Синтаксические методы трансляции 5.1. Сущность синтаксических методов 5.1.1. Метод синтаксических подпрограмм 5.1.2. Синтаксические методы и универсальный компилятор 5.2. Формальные грамматики и языки 5.2.1. Формальные грамматики 5.2.2. Нотация 5.2.3. Формальные языки 5.2.4. Задача разбора 5.2.5. Классификация языков по Хомскому 5.2.6. Нисходящий анализ 5.2.7. Восходящий анализ 5.3. Метод предшествования 5.3.1. Отношения предшествования 5.3.2. Грамматика предшествования 5.3.3. Распознаватель 5.3.4. Матрица предшествования 5.3.5. Функции предшествования 5.3.6. Транслятор 5.3.7. Расширенное предшествование 5.3.8. Распознаватель расширенного предшествования 5.4. Операторное предшествование 5.4.1. Грамматика с операторным предшествованием 5.4.2. Распознаватель 5.4.3. Матрица и функции операторного предшествования 5.4.4. Особенности транслятора 5.4.5. Сравнительная оценка методов, основанных на предшествовании 5.5. Матрица переходов 5.5.1. Расширение операторной грамматики 5.5.2. Распознаватель и транслятор 5.5.3. Конструктор 5.6. Правила подстановки Флойда 5.6 1. Распознаватель 5.6.2. Конструктор 5.6.3. Подготовка грамматики для конструктора 5.6.4. Примеры 5.6.5. Взаимосвязь методов синтаксического анализа Заключение Литература Предметный указатель
Author(s): Лебедев В.Н.
Publisher: Статистика
Year: 1975
Language: Russian
Commentary: 1146121914. хорошее+OCR
Pages: 313
City: Москва