Содержание
- 2. Фронтэнд Машинно независимые оптимизации Код генерация + машинно зависимые оптимизации Этапы компиляции
- 3. Лексический анализатор (лексер) Синтаксический анализатор (парсер) Семантический анализатор Генерация промежуточного представления Этапы фронтэнда
- 4. Схема работы Исходный код Лексер Парсер Символьная таблица Токен Следующий Семантический анализ
- 5. if (a == b) then a += 5; else a -= 5; if (a == b)
- 6. Лексер формирует последовательности входных символов в лексемы, определяет их тип и отправляет токены парсеру. Лексема –
- 7. Лексема -- Токен 12345 (число, 12345) temp_1 (идентификатор, указатель на симтаб) += (оператор, plus_assign) + (оператор,
- 8. Обрабатываемые лексером и парсером последовательности символов и токенов напрямую зависят от спецификации языка. Необходим способ описания
- 9. Алфавит – множество символов, используемых в языке Терминальный символ - символ из алфавита Нетерминальный символ –
- 10. Тип 0: неограниченные Тип 1: контекстно-зависимые / неукорачивающие Тип 2: контекстно-свободные Тип 3: регулярные: праволинейные/леволинейные Классификация
- 11. Регулярные грамматики: праволинейные (A → w, A → wB, A,B ∈ N, w ∈ T*) леволинейные
- 12. Тип 0 (неограниченные): естественные языки: Русский Английский Тип 2 (контекстно-свободные): большинство языков программирования: Java С++ Тип
- 13. Тип 2 контекстно – свободная грамматика: может быть описана с помощью конечного автомата с магазинной памятью
- 14. Строгие определения. Регулярные множества.
- 15. Выражению «(a(b|c))*c» удовлетворяют: с ababacc abacabc Не удовлетворяют: ac abbc abacac Пример регулярного выражения
- 16. Строгие определения. Конечные автоматы.
- 17. Схема построения лексера Лексическая спецификация Регулярное выражение Недетерминированный автомат Детерминированный автомат Диаграмма состояний
- 18. Регулярное Выражение -> НКА
- 19. Регулярное Выражение -> НКА
- 20. Рассмотрим регулярное выражение: Построим соответствующий НКА: Пример
- 21. ε-замыкание(S) — множество состояний, которые достижимы из S путём переходов по ε Начальное состояние ДКА -
- 22. НКА -> ДКА Пример
- 23. Пример построенной диаграммы S com1 / IDENTIFIER NUMBER com2 ! += temp != ++ + “STRING”
- 24. Неполная лексема Конец файла между /* … */ Конец файла внутри строки в кавычках Буквенный символ
- 26. Скачать презентацию