🗊Презентация Лексер, парсер. Этапы компиляции. (Часть 1)

Нажмите для полного просмотра!
Лексер, парсер. Этапы компиляции. (Часть 1), слайд №1Лексер, парсер. Этапы компиляции. (Часть 1), слайд №2Лексер, парсер. Этапы компиляции. (Часть 1), слайд №3Лексер, парсер. Этапы компиляции. (Часть 1), слайд №4Лексер, парсер. Этапы компиляции. (Часть 1), слайд №5Лексер, парсер. Этапы компиляции. (Часть 1), слайд №6Лексер, парсер. Этапы компиляции. (Часть 1), слайд №7Лексер, парсер. Этапы компиляции. (Часть 1), слайд №8Лексер, парсер. Этапы компиляции. (Часть 1), слайд №9Лексер, парсер. Этапы компиляции. (Часть 1), слайд №10Лексер, парсер. Этапы компиляции. (Часть 1), слайд №11Лексер, парсер. Этапы компиляции. (Часть 1), слайд №12Лексер, парсер. Этапы компиляции. (Часть 1), слайд №13Лексер, парсер. Этапы компиляции. (Часть 1), слайд №14Лексер, парсер. Этапы компиляции. (Часть 1), слайд №15Лексер, парсер. Этапы компиляции. (Часть 1), слайд №16Лексер, парсер. Этапы компиляции. (Часть 1), слайд №17Лексер, парсер. Этапы компиляции. (Часть 1), слайд №18Лексер, парсер. Этапы компиляции. (Часть 1), слайд №19Лексер, парсер. Этапы компиляции. (Часть 1), слайд №20Лексер, парсер. Этапы компиляции. (Часть 1), слайд №21Лексер, парсер. Этапы компиляции. (Часть 1), слайд №22Лексер, парсер. Этапы компиляции. (Часть 1), слайд №23Лексер, парсер. Этапы компиляции. (Часть 1), слайд №24Лексер, парсер. Этапы компиляции. (Часть 1), слайд №25

Содержание

Вы можете ознакомиться и скачать презентацию на тему Лексер, парсер. Этапы компиляции. (Часть 1). Доклад-сообщение содержит 25 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Лексер + Парсер.
Часть 1.
Илья Филиппов
21.09.2015
Описание слайда:
Лексер + Парсер. Часть 1. Илья Филиппов 21.09.2015

Слайд 2





Этапы компиляции
Фронтэнд
Машинно независимые оптимизации
Код генерация + машинно зависимые оптимизации
Описание слайда:
Этапы компиляции Фронтэнд Машинно независимые оптимизации Код генерация + машинно зависимые оптимизации

Слайд 3





Этапы фронтэнда
Лексический анализатор (лексер)
Синтаксический анализатор (парсер)
Семантический анализатор
Генерация промежуточного представления
Описание слайда:
Этапы фронтэнда Лексический анализатор (лексер) Синтаксический анализатор (парсер) Семантический анализатор Генерация промежуточного представления

Слайд 4





Схема работы
Описание слайда:
Схема работы

Слайд 5





Исходный код
if (a == b) then
       a += 5;
   else
       a -= 5;
if (a == b) then\n\ta += 5;\nelse\n\ta-=5;
Описание слайда:
Исходный код if (a == b) then a += 5; else a -= 5; if (a == b) then\n\ta += 5;\nelse\n\ta-=5;

Слайд 6





Схема работы
Лексер формирует последовательности входных символов в лексемы, определяет их тип и отправляет токены парсеру.
Лексема – минимальная единица языка, имеющая самостоятельный смысл.
Токен – тип лексемы + аттрибут
Парсер формирует исходное выражение языка, запрашивая токены.
Описание слайда:
Схема работы Лексер формирует последовательности входных символов в лексемы, определяет их тип и отправляет токены парсеру. Лексема – минимальная единица языка, имеющая самостоятельный смысл. Токен – тип лексемы + аттрибут Парсер формирует исходное выражение языка, запрашивая токены.

Слайд 7





Примеры лексем и токенов
Лексема	          --            Токен
12345                            (число, 12345)
temp_1                  (идентификатор, указатель 					на симтаб)
+=                         (оператор, plus_assign)
+				(оператор, plus)
const			(ключевое слово, const)
Void                        (ключевое слово, void)
var_name               (идентификатор, указатель 					на симтаб)
*                                  (оператор, star)
Описание слайда:
Примеры лексем и токенов Лексема -- Токен 12345 (число, 12345) temp_1 (идентификатор, указатель на симтаб) += (оператор, plus_assign) + (оператор, plus) const (ключевое слово, const) Void (ключевое слово, void) var_name (идентификатор, указатель на симтаб) * (оператор, star)

Слайд 8





Схема работы
Обрабатываемые лексером и парсером последовательности символов и токенов напрямую зависят от спецификации языка.
Необходим способ описания
«что в языке может быть»
«что в языке не может быть»
Описание слайда:
Схема работы Обрабатываемые лексером и парсером последовательности символов и токенов напрямую зависят от спецификации языка. Необходим способ описания «что в языке может быть» «что в языке не может быть»

Слайд 9





Строгие определения. Грамматики.
Алфавит – множество символов, используемых в языке
Терминальный символ - символ из алфавита
Нетерминальный символ – символ не из алфавита
Цепочка — последовательность символов
Терминальная цепочка – цепочка, состоящая из терминальных символов
Язык – множество терминальных цепочек
                                                                      Пример грамматики:
                                                                      S->aQbZ
                                                                      Q->ab | cc | Qd
                                                                      Z -> aQa | c | ε
Описание слайда:
Строгие определения. Грамматики. Алфавит – множество символов, используемых в языке Терминальный символ - символ из алфавита Нетерминальный символ – символ не из алфавита Цепочка — последовательность символов Терминальная цепочка – цепочка, состоящая из терминальных символов Язык – множество терминальных цепочек Пример грамматики: S->aQbZ Q->ab | cc | Qd Z -> aQa | c | ε

Слайд 10





Классификация грамматик по Хомскому
Тип 0: неограниченные
Тип 1: контекстно-зависимые / неукорачивающие
Тип 2: контекстно-свободные
Тип 3: регулярные: праволинейные/леволинейные
Описание слайда:
Классификация грамматик по Хомскому Тип 0: неограниченные Тип 1: контекстно-зависимые / неукорачивающие Тип 2: контекстно-свободные Тип 3: регулярные: праволинейные/леволинейные

Слайд 11





Строгие определения. Типы грамматик.
Регулярные грамматики:
праволинейные (A → w, A → wB, A,B ∈ N, w ∈ T*)
леволинейные (A → w, A → Bw, A,B ∈ N, w ∈ T*)
Контекстно-свободные грамматики:
 (A → w, A ∈ N, w ∈ (T U N)*)
Описание слайда:
Строгие определения. Типы грамматик. Регулярные грамматики: праволинейные (A → w, A → wB, A,B ∈ N, w ∈ T*) леволинейные (A → w, A → Bw, A,B ∈ N, w ∈ T*) Контекстно-свободные грамматики: (A → w, A ∈ N, w ∈ (T U N)*)

Слайд 12





Соответствие языков и грамматик
Тип 0 (неограниченные): естественные языки:
Русский
Английский
Тип 2 (контекстно-свободные): большинство языков программирования:
Java
С++
Тип 3: (регулярные): описание отдельных лексем в языках программирования:
Идентификатор
Числовая константа
Описание слайда:
Соответствие языков и грамматик Тип 0 (неограниченные): естественные языки: Русский Английский Тип 2 (контекстно-свободные): большинство языков программирования: Java С++ Тип 3: (регулярные): описание отдельных лексем в языках программирования: Идентификатор Числовая константа

Слайд 13





Способы разбора грамматик
Тип 2 контекстно – свободная грамматика:
может быть описана с помощью конечного автомата с магазинной памятью
Используется для анализа последовательности токенов синтаксическим анализатором
Тип 3 регулярная грамматика:
Может быть описана с помощью конечного автомата
Используется для формирования лексемы лексическим анализатором
Описание слайда:
Способы разбора грамматик Тип 2 контекстно – свободная грамматика: может быть описана с помощью конечного автомата с магазинной памятью Используется для анализа последовательности токенов синтаксическим анализатором Тип 3 регулярная грамматика: Может быть описана с помощью конечного автомата Используется для формирования лексемы лексическим анализатором

Слайд 14





Строгие определения. Регулярные множества.
Описание слайда:
Строгие определения. Регулярные множества.

Слайд 15





Пример регулярного выражения
Выражению «(a(b|c))*c» удовлетворяют:
с
ababacc
abacabc
Не удовлетворяют:
ac
abbc
abacac
Описание слайда:
Пример регулярного выражения Выражению «(a(b|c))*c» удовлетворяют: с ababacc abacabc Не удовлетворяют: ac abbc abacac

Слайд 16





Строгие определения. Конечные автоматы.
Описание слайда:
Строгие определения. Конечные автоматы.

Слайд 17





Схема построения лексера
Описание слайда:
Схема построения лексера

Слайд 18





Регулярное Выражение -> НКА
Описание слайда:
Регулярное Выражение -> НКА

Слайд 19





Регулярное Выражение -> НКА
Описание слайда:
Регулярное Выражение -> НКА

Слайд 20





Пример
Рассмотрим регулярное выражение:
Построим соответствующий НКА:
Описание слайда:
Пример Рассмотрим регулярное выражение: Построим соответствующий НКА:

Слайд 21





НКА -> ДКА
ε-замыкание(S) — множество состояний, которые достижимы из S путём переходов по ε
Начальное состояние ДКА - ε-замыкание начального состояния НКА
While(есть нерассмотренное состояние ДКА: «cur»)
Для каждого состояния "B1" НКА, входящего в “cur”:
Для каждого перехода “P” из "B" в “B2":
Добавить состояние “new” ε-замыкание(B2)
Добавить переход “cur” -> “new” по P
Конечные состояния ДКА – состояния, содержащие конечные состояния НКА
Описание слайда:
НКА -> ДКА ε-замыкание(S) — множество состояний, которые достижимы из S путём переходов по ε Начальное состояние ДКА - ε-замыкание начального состояния НКА While(есть нерассмотренное состояние ДКА: «cur») Для каждого состояния "B1" НКА, входящего в “cur”: Для каждого перехода “P” из "B" в “B2": Добавить состояние “new” ε-замыкание(B2) Добавить переход “cur” -> “new” по P Конечные состояния ДКА – состояния, содержащие конечные состояния НКА

Слайд 22





НКА -> ДКА Пример
Описание слайда:
НКА -> ДКА Пример

Слайд 23





Пример построенной диаграммы
Описание слайда:
Пример построенной диаграммы

Слайд 24





Ошибки находящиеся лексером
Неполная лексема
Конец файла между /* … */
Конец файла внутри строки в кавычках
Буквенный символ в цифровой константе: 123q
Некорректный символ: @
Описание слайда:
Ошибки находящиеся лексером Неполная лексема Конец файла между /* … */ Конец файла внутри строки в кавычках Буквенный символ в цифровой константе: 123q Некорректный символ: @

Слайд 25





Должны быть ясны вопросы:
Место выполнения лексического анализатора
Схема работы лексического анализатора
Какие ошибки обрабатываются лексическим анализатором
Идейная схема построения лексического анализатора
Предназначение символьной таблицы для лексера
Описание слайда:
Должны быть ясны вопросы: Место выполнения лексического анализатора Схема работы лексического анализатора Какие ошибки обрабатываются лексическим анализатором Идейная схема построения лексического анализатора Предназначение символьной таблицы для лексера



Похожие презентации
Mypresentation.ru
Загрузить презентацию