I. Первый кусок
Назначение трансляторов. Их роль при создании ПО
Классификация
Компилятор – на входе: язык высокого уровня, на выходе: машинный код.
Интерпретатор – на входе: язык высокого уровня, на выходе: машинный код ( по операторно).
Перекодировщик – перевод с 1го языка высокого уровня на другой.
Ретранслятор — с низкого на язык высокого уровня.
Аналитическая и генерирующая части
Аналитическая часть – поиск ошибок.(лексические и синтаксические , семантические)
Генерирующая часть — выдача результата.
Многопроцессорные трансляторы
Параллельное выполнение нескольких процессов
II. Второй кусок
Лексический анализатор
Лексический анализатор — процесс аналитического разбора входной последовательности символов с целью получения на выходе другой последовательности символов (например, перевод сторки в число). При этом, группа символов входной последовательности, идентифицируемая на выходе процесса как последовательность допустимых символов (лексема), то есть в процессе лексического анализа производится распознавание и выделение лексем из входной последовательности символов.
Вход и выход лексического анализатора. Анализирующая и генерирующая части
На входе – тексты на входном языке.
На выходе – лексем (последовательность допустимых символов).
Анализирующая часть – поиск ошибок.
Генерирующая часть – создание лексем.
Лексические ошибки
Три вила ошибок:
Лексические – ошибки набивания текста.
Синтаксические – ошибки данного языка программирования.
Семантические – смысловые, ошибки в алгоритме.
Анализирующая часть:
Лексические ошибки – ошибки в словах.
Неверная буква.
Пропущена буква.
Лишняя буква.
Неправильно поставлены местами буквы.
Генерирующая часть:
В лексемах отсутствуют комментарии.
Лексемы одинаковой длины.
Лексемы несут числовую информацию.
III. Третий кусок
Синтаксический анализатор
Синтаксический анализатор – это процесс сопоставления линейной последовательности лексем языка с его формальной грамматикой. Результатом обычно является дерево разбора (синтаксическое дерево).
Вход и выход синтаксического анализатора. Анализирующая и генерирующая части
На входе – лексемы.
На выходе – промежуточные таблицы.
Анализирующая часть – поиск ошибок.
Генерирующая часть – создание промежуточных таблиц.
Синтаксический управляемый перевод. Свободная грамматика. Синтаксические ошибки
Синтаксический управляемый перевод – соответствие между записью в БНФ и ее графическим отображением.
Язык – “Begin” Множество Оператор “end”
Множество – множ…множ
Оператор – опер…опер
Язык – “Begin” Множ…множ Опер…опер “end”
Контекстно-свободная грамматика – грамматика, у которой левые части всех продукций являются нетерминальные символы.
Ограничение – то, что нельзя описать в форме БНФ, описывается в предикатной форме.
Синтаксические – ошибки данного языка программирования.
Третий кусок часть 2
Статьи к прочтению:
Составить грамматику, порождающую формальный язык. Теория автоматов и формальных языков. Практика.
Похожие статьи:
-
Синтаксически управляемый перевод
Генерация объектного кода – это перевод компилятором внутреннего представления исходной программы в цепочку символов выходного языка. Генерация…
-
Основные принципы работы синтаксического анализатора
Синтаксический анализатор (синтаксический разбор) – это часть компилятора, которая отвечает за выявление основных синтаксических конструкций входного…