Математика | ||||
Введение в системы программирования-Лебедев В. Н. М., «Статистика», 1975. | ||||
Лебедев В. Н.
3 Введение в системы программирования. М., «Статистика», 1975. 312 с. с ил. Книга представляет собой монографию по системному программированию. После краткой характеристики основных элементов современных систем программирования: библиотек, языков программирования и трансляторов — изложены принципы построения трансляторов для языков символического кодирования, макроязыков и процедурно-ориентированных языков высокого уровня^ Описаны наиболее распространенные прямые и синтаксические методы трансляции, а также некоторый способы автоматизации разработки трансляторов. Книга предназначена для студентов старших курсов, аспирантов и программистов, специализирующихся в области разработки системного математического обеспечения я в смежных областях. ВВЕДЕНИЕ Современные вычислительные и информационно-вычислительные системы, применяемые для решения научно-технических и учетно-плановых задач в интересах предприятий, учреждений и органов административного управления, включают две взаимосвязанные, но качественно различные компоненты: комплекс средств вычислительной техники и математическое (программное) -обеспечение. Математическое обеспечение в свою очередь можно разделить на две части: системное математическое обеспечение и прикладное математическое обеспечение. Системное математическое обеспечение представляет собой комплекс управляющих и обрабатывающих программ, описаний и инструкций, которые обеспечивают техническое функционирование вычислительной системы, а также разработку, отладку и выполнение программ пользователей. Набор программ системного математического обеспечения мало зависит от характера решаемых задач пользователей. Прикладное математическое обеспечение представляет собой совокупность программ решения конкретных задач, которые систематически используются в интересах данного предприятия, учреждения или органа управления для обеспечения его повседневной производственной, научной или административной деятельности. .Специализированные комплекты программ решения конкретных задач называют пакетами прикладных программ. При создании прикладных программ применяют методы специальных научных, инженерных и экономических дисциплин, а также общие методы вычислительной математики, теории оптимизации, теории информационного поиска и программирования для вычислительных машин. ' • ;.. Разработкой системного математического обеспечения занимается особая дисциплина — системноелпрограммирование. Предмет системного программирования — теория и методы разработки СОДЕРЖАНИЕ Q Введение.......................... Глава 1. Элементы системы программирования . ...... 5 1.1. Библиотека стандартных подпрограмм.......... 5 1.1.1. Назначение и структура библиотечных подпрограмм . . 5 1.1.2. Компилирующие и интерпретирующие системы .... б 1.1.3. Современные тенденции в организации библиотеки ... 7 1.1.4. Особенности стандартных подпрограмм в мультипрограммных системах................. J2 1.2. Языки программирования.............. }3 1.2d. Классификация ................ '•> 1.2.2. Сравнительная характеристика языков....... 18 1.2.3. Универсальные языки.............. 20 1.3. Трансляторы ..........._........ 22 1.3.1. Классификация ................ 22 1.3.2. Компиляторы и интерпретаторы.......... 23 1.3.3. Общая схема трансляции............ 24 1.3.4. Структура трансляторов............. 26 1.3.5. Сегментация программы и данных......... 28 1.3.6. Структура транслятора ТА-2М.......... 29 1.3.7. Характеристики некоторых отечественных трансляторов 31 1.3.8. Средства отладки............... 33 Глава 2. Организация, хранение и поиск данных.......... 35 2.1. Структуры и хранение данных............. 35 2.1.1. Структуры данных............... 35 2.1.2. Структуры хранения.............. 38 2.1.3. Отображение структур данных в структуры хранения . . 40 2.2. Хранение и поиск данных в таблицах.......... 43 2.2.1. Таблицы.................. 43 2.2.2. Неупорядоченные таблицы............ 44 2.2.3. Упорядоченные таблицы............. 45 2.3. Таблицы с вычисляемыми входами........... 47 2.3.1. Таблицы с прямым доступом........... 47 2.3.2. Таблицы со случайным перемешиванием....... 48 2.3.3. Перемешивание с цепочками переполнения...... 50 2.3.4. Функаии расстановки.............. 51 Глава 3. Ассемблеры . . .................. 54 3.1. Языки символического кодирования........... 54 3.1.1. Области применения и средства языков символического кодирования.................. 54 3.1.2. Машинные команды................ 58 3.1.3. Выражения ................. 62 3.1.4. Команды ассемблера...... ..... 65 3.2. Ассемблер мнемокода................ 76 3.2.1. Схема трансляции............... 76 3.2.2. Структура двухпросмотрового ассемблера...... 76. 3.2.3. Таблицы ассемблера.............. 77 3.2.4. Первый просмотр. Выявление имен...... . . . 80 3.2.5. Распределение памяти для литералов........ 84 3.2.6. Листинг и объектный модуль........... 84 3.2.7. Второй просмотр. Генерирование машинных команд . . 89 3.2.8. Особенности ассемблера для многосекционных программ 93. 3.2.9. Использование памяти разных уровней при трансляции . 94 3.3. Макроассемблер.................. 95 3.3.1. Макроязык.................. 95 3.3.2. Макроопределения............... 97 3.3.3. Макрогенератор................ 102 3.3.4. Таблицы макрогенератора............ 104 3.3.5. Блок управления трансляцией........... 106 3.3.6. Блок обработки макроопределений......... 107 3.3.7. Блок обработки макрокоманд........... 109 Глава 4. Прямые методы трансляции...............112 4.1. Процедурно-ориентированные языки.......... 112 4.1.1. Алгол-60...................112 4.1.2. Фортран................. . 114 4.1.3. ПЛ/1 .....,..............116 4.1.4. Алгол-68...................119 4.1.5. Задачи трансляции...............121 4.2. Лексический анализ................122 4.2.1. Задачи лексического анализа........... 122 4.2.2. Перекодирование входной программы........ 123 4.2.3. Перевод служебных слов, идентификаторов и констант . 124 4.2.4. Алгоритм перевода числовых констант...... . 126 4.2.5. Контроль входной программы на этапе лексического анализа .................... 129 4.3. Трансляция выражений............... 130 4.3.1. Польская запись................130 4.3.2. Алгоритм перевода обратной польской записи в машинные команды....................134 4.3.3. Перевод простых арифметических и логических выражений в обратную польскую запись........... 137 4.3.4. Переменные с индексами.............140 4.3.5. Указатели функций...............142 4.3.6. Условные выражения..............144 4.3.7. Особенности алгоритма переводи условных выражений в обратную польскую запись...........149 4.3.8. Алгоритм трансляции выражений.........152 4.4. Трансляция операторов...............153 4.4.1. Промежуточная обратная польсжзя запись операторов . 153 4.4.2. Оператор присваивания............. 154 4.4.3. Оператор перехода............ . . 156 4.4.4. Условный оператор......... ..... 158 4.4.5. Оператор цикла................ 161 4.4.6. Алгоритм перевода оператора цикла в обратную польскую запись................... 165 4.5. Блоки и трансляция описаний............. 171 4.5.1. Блочная структура программы и способы распределения памяти ...................171 4.5.2. Статическое распределение памяти.........174 4.5.3. Использование стека для динамического распределения памяти ..................„• 4.5.4. Перевод в обратную польскую запись блоков и описании типа .....................]Q9 4.5.5. Трансляция описаний массивов..........^ 4.5.6. Обработка меток и описаний переключателей.....|™ 4.6. Трансляция процедур................}™ 4.6.1. Способы трансляции процедур..........}^ 4.6.2. Обратная польская запись оператора процедуры .... 1»° 4.6.3. Алгоритм трансляции операторов процедур......^ 4.6.4. Особенности трансляции описаний процедур.....^ 4.7. Оптимизация объектной программы и транслятора.....^ 4.7.1. Задачи оптимизации..............*?> 4.7.2. Оптимизирующие трансляторы..........^ 4.7.3. Быстрые трансляторы.............• •ди Глава 5. Синтаксические методы трансляции............211 5.1.-Сущность синтаксических методов...........211 5.1.1. Метод синтаксических подпрограмм........^11 5.1.2. Синтаксические методы и универсальный компилятор . . 213 5.2. Формальные грамматики и языки...........215 5.2.1. Формальные грамматики............. ^1*> 5.2.2. Нотация............•...... 21° 5.2.3. Формальные языки............... 220 5.2.4. Задача разбора................ 222 5.2.5. Классификация языков по Хомскому........ ^2о 5.2.6. Нисходящий анализ.............. 225 5.2.7. Восходящий анализ............... 229 5.3. Метод предшествования............... 232 5.3.1. Отношения предшествования...........232 5.3.2. Грамматика предшествования...........233 5.3.3. Распознаватель................234 5.3.4. Матрица предшествования............235 5.3.5. Функции предшествования............239 5.3.6. Транслятор..................242 5.3.7. Расширенное предшествование..........247 5.3.8. Распознаватель расширенного предшествования .... 250 5.4. Операторное предшествование.............253 5.4.1. Грамматика с операторным предшествованием .... 253 5.4.2. Распознаватель ................254 5.4.3. Матрица и функции операторного предшествования . . 256 5.4.4. Особенности транслятора............259 5.4.5. Сравнительная оценка методов, основанных на предшествовании .................262 5.5. Матрица переходов.................265 5.5.1. Расширение операторной грамматики........265 5.5.2. Распознаватель и транслятор...........268 5.5.3. Конструктор .....,...........273 5.6. Правила подстановки Флойда.............281 5.6 1. Распознаватель ................28! 5.6.2. Конструктор .................284 5.6.3. Подготовка грамматики для конструктора......287 5.6.4. Примеры ..................289 5.6.5. Взаимосвязь методов синтаксического анализа .... 295 Заключение.......................• • 298 Литература .........................301 Предметный указатель.....................309 Цена: 150руб. |
||||