Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_po_EVM.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2.78 Mб
Скачать

Московский автомобильно-дорожный государственный технический университет (мади)

Курс лекций

по дисциплине

«Архитектура ЭВМ, СПО»

Содержание

Введение……………………………………………………………………...........4 I.Формальные языки и грамматики ……………………………………………..5

I.1. Цепочки символов………………………………………………………..…...5

I.2. Операции над цепочками символов………………………………………....5

I.3. Понятие языка…………………………………………………....………..….6

I.4. Способы задания языка………………………………………………..……..6

I.5. Синтаксис и семантика языка…………………………………………….….6

I.6. Определение грамматики…………………………………………….………7

I.7. Пример грамматики……………………………………………………….….8

I.8. Принцип рекурсии в правилах грамматики…………………………..…….9

I.9. Способы задания грамматик……………………………………………..…..9

I.9.1. Использование метасимволов……………………………………………10

I.9.2. Запись правил грамматики в графическом виде………………………..10

I.10. Распознаватель…………………………………………………….…...…..11

I.10.1. Схема распознавателя………………………………………..…….….…11

I.10.2. Задача разбора……………………………………………..……….…….12

I.11. Классификация грамматик…………………………………..……….……13

I.12. Классификация языков……………………………………………….…....14

I.13. Примеры классификаций языков и грамматик………………….….…....14

I.14. Цепочки вывода……………………………………………………….…...16

I.14.1. Понятие о выводе……………………………………………..…….……16

I.14.2. Сентенциальная форма грамматики……………………………….…....17

I.14.3. Левосторонние и правосторонние выводы………………………...…...18

I.14.4. Дерево вывода и методы его построения ………………………….…..19

I.15. Однозначности и эквивалентности грамматик…………………….…….19

I.15.1. Однозначные и неоднозначные грамматики………………………..….19

I.15.2. Проверка однозначной и эквивалентной грамматик…………….….…20

I.15.3. Правила, задающие неоднозначность в грамматиках……………...….21

II. Принципы построения трансляторов………………………………….…....22

II.1. Определения транслятора……………………………………………..…..22

II.2. Определение компилятора…………………………………………….…..22

II.3. Определения интерпретатора……………………………………........…..23

II.4. Этапы трансляции…………………………………………….………..…..23

II.5. Фазы компиляции………………………………………………….…..…..24

II.6. ТИ ( таблицы идентификаторов)…………………………..…………..….25

II.6.1. Назначение и особенности построения…………………………….......25

II.6.2. Простейшие методы ……………………………………………….....…25

II.6.3. Построение ТИ по методу бинарного дерева…………….…….……...26

II.6.4. ХЭШ-функции, ХЭШ-адресации……………………………………......27

II.6.5. Выбор Хэш-функции при построении ТИ……………………………....28

II.6.6. Хэш-адресация с рехэшированием…………………………………......28

II.6.7. Построение ТИ по методу цепочек…………………………..……..…..30

II.7. Лексические анализаторы…………………………………….………..….31

II.7.1. Назначение ЛА…………………………………………………….…….31

II.7.2. Определение границ лексем……………………………………...……..32

II.7.3. Выполнение действий, связанных с лексемами……………………..…32

II.7.4. Применение конечных автоматов (КА) для построения ЛА…….……33

II.7.5. Алгоритм построения КА……………………………………………..…33

II.7.6. Пример применения КА для построения ЛА…………………….….…34

II.8. Принципы построения синтаксических анализаторов (СА)………..…..36

II.8.1. Значение СА…………………………………………………………..….36

II.8.2. Автоматы с магазинной памятью…………………………………..…..37

II.9. Принципы построения семантического анализатора (С-А)……………38

II.9.1. Назначение С-А………………………………………………………….38

II.9.2. Проверка соблюдения во входной программе семантических

соглашений………………………………………………………….……38

II.9.3. Дополнение внутреннего представления программы……………..…39

II.9.4. Проверка смысловых норм языка программирования……………….40

II.10. Принципы генерации кода……………………………………………...40

II.11. Оптимизация кода…………………………………………………….…41

Список литературы …………………………………………………………....43

Введение

Базовые принципы построения средств разработки СПО – это трансляторы, компиляторы и интерпретаторы. Разработчики СПО не создают его на уровне машинных команд понятных ЭВМ, т.к. большая трудоемкость этих работ и очень большое количество ошибок. СПО разрабатывается с применением языков высокого уровня, затем оно переводится на машинный язык с помощью трансляторов(переводчиков) и компиляторов. Последний имеет почти тоже значение, что и транслятор. Транслятор – это более широкое понятие, компилятор – более узкое. Все языки программирования построены на одном базисе(теория формальных языков и грамматик). Этот же базис используется в автоматизированных системах программирования.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]