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

Лекции по построению компилятора на Pascal

Лекции по построению компилятора на Pascal Автор неизвестен Оглавление

1. Введение 5

ВВЕДЕНИЕ 5

ОСНОВА 7

2. Синтаксический анализ выражений 10

     НАЧАЛО 10

ОДИНОЧНЫЕ ЦИФРЫ 10

ВЫРАЖЕНИЯ С ДВУМЯ ЦИФРАМИ 11

ОБЩАЯ ФОРМА ВЫРАЖЕНИЯ 13

ИСПОЛЬЗОВАНИЕ СТЕКА 13

УМНОЖЕНИЕ И ДЕЛЕНИЕ 14

КРУГЛЫЕ СКОБКИ 15

УНАРНЫЙ МИНУС 16

СЛОВО ОБ ОПТИМИЗАЦИИ 17

3. Снова выражения 19

ВВЕДЕНИЕ 19

ПЕРЕМЕННЫЕ 19

ФУНКЦИИ 20

ПОДРОБНЕЕ ОБ ОБРАБОТКЕ ОШИБОК 21

ПРИСВАИВАНИЕ 22

МНОГОСИМВОЛЬНЫЕ ТОКЕНЫ. 23

ПРОБЕЛЫ 24

4. Интерпретаторы 30

ВВЕДЕНИЕ 30

ИНТЕРПРЕТАТОР 31

НЕМНОГО ФИЛОСОФИИ 34

5. Управляющие конструкции 39

ВВЕДЕНИЕ 39

ПЛАН 39

НЕМНОГО ОСНОВ 40

ОПЕРАТОР IF 42

ОПЕРАТОР WHILE 44

ОПЕРАТОР LOOP 45

REPEAT-UNTIL 46

ЦИКЛ FOR 47

ОПЕРАТОР DO 48

ОПЕРАТОР BREAK 49

ЗАКЛЮЧЕНИЕ 52

6. Булевы выражения 57

ВВЕДЕНИЕ 57

ПЛАН 57

ГРАММАТИКА 57

ОПЕРАТОРЫ ОТНОШЕНИЙ 58

ИСПРАВЛЕНИЕ ГРАММАТИКИ 59

СИНТАКСИЧЕСКИЙ АНАЛИЗАТОР 61

ОБЪЕДИНЕНИЕ С УПРАВЛЯЮЩИМИ КОНСТРУКЦИЯМИ 68

ДОБАВЛЕНИЕ ПРИСВАИВАНИЙ 68

7. Лексический анализ 71

ВВЕДЕНИЕ 71

ЛЕКСИЧЕСКИЙ АНАЛИЗ 71

КОНЕЧНЫЕ АВТОМАТЫ И АЛЬТЕРНАТИВЫ 73

ЭКСПЕРИМЕНТЫ ПО СКАНИРОВАНИЮ 73

ПРОБЕЛ 74

КОНЕЧНЫЕ АВТОМАТЫ 75

НОВЫЕ СТРОКИ 76

ОПЕРАТОРЫ 77

СПИСКИ, ЗАПЯТЫЕ И КОМАНДНЫЕ СТРОКИ. 78

СТАНОВИТСЯ ИНТЕРЕСНЕЙ 79

ВОЗВРАЩЕНИЕ СИМВОЛА 83

РАСПРЕДЕЛЕННЫЕ СКАНЕРЫ ПРОТИВ ЦЕНТРАЛИЗОВАННЫХ 85

ОБЪЕДИНЕНИЕ СКАНЕРА И ПАРСЕРА 85

   Пара комментариев: 91

ЗАКЛЮЧЕНИЕ 97

8. Немного философии 99

ВВЕДЕНИЕ 99

ДОРОГА ДОМОЙ 99

ПОЧЕМУ ЭТО ТАК ПРОСТО? 100

ЗДЕСЬ НЕТ НИЧЕГО СЛОЖНОГО! 101

ЗАКЛЮЧЕНИЕ 105

9. Вид сверху 106

ВВЕДЕНИЕ 106

ВЕРХНИЙ УРОВЕНЬ 106

СТРУКТУРА ПАСКАЛЯ 107

РАСШИРЕНИЕ 108

ОБЪЯВЛЕНИЯ 109

СТРУКТУРА   СИ 111

10. Представление "TINY" 116

ВВЕДЕНИЕ 116

ПОДГОТОВКА 116

ОБЪЯВЛЕНИЯ 119

ОБЪЯВЛЕНИЯ И ИДЕНТИФИКАТОРЫ 120

ИНИЦИАЛИЗАТОРЫ 121

ТАБЛИЦА ИДЕНТИФИКАТОРОВ 123

ВЫПОЛНИМЫЕ УТВЕРЖДЕНИЯ 123

БУЛЕВА ЛОГИКА 128

УПРАВЛЯЮЩИЕ СТРУКТУРЫ 132

ЛЕКСИЧЕСКИЙ АНАЛИЗ 134

МНОГОСИМВОЛЬНЫЕ ИМЕНА ПЕРЕМЕННЫХ 138

СНОВА ОПЕРАТОРЫ ОТНОШЕНИЙ 140

ВВОД/ВЫВОД 141

ЗАКЛЮЧЕНИЕ 143

11. Пересмотр лексического анализа 159

ВВЕДЕНИЕ 159

ПРЕДПОСЫЛКА 159

ПРОБЛЕМА 160

РЕШЕНИЕ 161

ИСПРАВЛЕНИЕ КОМПИЛЯТОРА 164

ЗАКЛЮЧЕНИЕ 166

TINY VERSION 1.1 166

12. Разное 179

ВВЕДЕНИЕ 179

ТОЧКИ С ЗАПЯТОЙ 179

СИНТАКСИЧЕСКИЙ САХАР 180

РАБОТА С ТОЧКАМИ С ЗАПЯТОЙ 181

КОМПРОМИСС 184

КОММЕНТАРИИ 184

ОДНОСИМВОЛЬНЫЕ РАЗДЕЛИТЕЛИ 184

МНОГОСИМВОЛЬНЫЕ РАЗДЕЛИТЕЛИ 186

ОДНОСТОРОННИЕ КОММЕНТАРИИ 187

ЗАКЛЮЧЕНИЕ 188

13. Процедуры 189

ВВЕДЕНИЕ 189

ПОСЛЕДНЕЕ ОТКЛОНЕНИЕ 189

ОСНОВЫ 190

ОСНОВА ДЛЯ ЭКСПЕРИМЕНТОВ 190

ОБЪЯВЛЕНИЕ ПРОЦЕДУРЫ 195

ВЫЗОВ ПРОЦЕДУРЫ 199

ПЕРЕДАЧА ПАРАМЕТРОВ 200

СЕМАНТИКА ПАРАМЕТРОВ 202

ПЕРЕДАЧА ПО ЗНАЧЕНИЮ 205

ЧТО НЕПРАВИЛЬНО? 209

ПЕРЕДАЧА ПО ССЫЛКЕ 212

ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ 213

ЗАКЛЮЧЕНИЕ 216

14. Типы 218

ВВЕДЕНИЕ 218

ЧТО БУДЕТ ДАЛЬШЕ? 218

ТАБЛИЦА ИДЕНТИФИКАТОРОВ 219

ДОБАВЛЕНИЕ ЗАПИСЕЙ 223

РАСПРЕДЕЛЕНИЕ ПАМЯТИ 224

ОБЪЯВЛЕНИЕ ТИПОВ 225

ПРИСВАИВАНИЯ 226

ТРУСЛИВЫЙ ВЫХОД 229

БОЛЕЕ ПРИЕМЛЕМОЕ РЕШЕНИЕ 230

ЛИТЕРАЛЬНЫЕ АРГУМЕНТЫ 232

АДДИТИВНЫЕ ВЫРАЖЕНИЯ 233

ПОЧЕМУ ТАК МНОГО ПРОЦЕДУР? 236

МУЛЬТИПЛИКАТИВНЫЕ ВЫРАЖЕНИЯ 237

УМНОЖЕНИЕ 237

ДЕЛЕНИЕ 239

ЗАВЕРШЕНИЕ 241

ПРИВОДИТЬ ИЛИ НЕ ПРИВОДИТЬ 242

ЗАКЛЮЧЕНИЕ 244

15. Назад в будущее 245

    ВВЕДЕНИЕ 245

НОВОЕ НАЧАЛО, СТАРОЕ НАПРАВЛЕНИЕ 245

НАЧИНАЕМ ЗАНОВО? 247

МОДУЛЬ INPUT 247

МОДУЛЬ OUTPUT 249

МОДУЛЬ ERROR 250

ЛЕКСИЧЕСКИЙ И СИНТАКСИЧЕСКИЙ АНАЛИЗ 251

МОДУЛЬ SCANNER 253

РЕШЕНИЯ, РЕШЕНИЯ 255

СИНТАКСИЧЕСКИЙ АНАЛИЗ 256

    ССЫЛКИ 259

16. Конструирование модулей 260

    ВВЕДЕНИЕ 260

СОВСЕМ КАК КЛАССИЧЕСКИЙ? 261

РАСШИРЕНИЕ СИНТАКСИЧЕСКОГО АНАЛИЗАТОРА 263

ТЕРМЫ И ВЫРАЖЕНИЯ 265

ПРИСВАИВАНИЯ 268

БУЛЕВА АЛГЕБРА 268

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