Перед тем, как начать какие-либо телодвижения в соответствии с заданной программой (написанной на Small Basic), в начале необходимо проанализировать её исходный код.
Этап анализа состоит из трёх фаз: Лексический анализ (ЛА), Синтаксический анализ (СА) и Семантический анализ (СмА).
Теперь кратко пройдёмся по ним.
В ходе Лексического анализа из исходного набора знаков (исходный код) формируются символы языка (или лексемы - это переменные, ключевые слова языка for, if и т.п.). ЛА не работает с контекстом, т.е. последовательность символов значения не имеет.
ЛА решает следующие задачи:
1. Преобразование знаков в символы.
2. Обработка пробелов.
3. Удаление комментариев.
На сегодняшний день существуют уже готовые инструменты для построения ЛА. Одним из таких мы и воспользуемся в дальнейшем.
В ходе Синтаксического анализа определяется структура программы. СА работает с контекстом, используя символы полученные при ЛА. Результатом работы СА является описание программы в форме дерева (синтаксическое дерево).
СА считывает символы и проверяет получаемую последовательность на ошибки. В дальнейшем рассмотрим два метода СА: метод рекурсивного спуска и SLR(1).
СА так же как и ЛА может быть построен автоматически:
В ходе Семантического анализа решаются проблемы совместимости типов переменных, области видимости и т.д.
P.S. В следующий раз немного поговорим о грамматике и языке. И более подробно изучим Лексический анализатор: сделаем свои первые наброски этого чуда, а так же попробуем автоматизировать данный процесс.
Этап анализа состоит из трёх фаз: Лексический анализ (ЛА), Синтаксический анализ (СА) и Семантический анализ (СмА).
Теперь кратко пройдёмся по ним.
В ходе Лексического анализа из исходного набора знаков (исходный код) формируются символы языка (или лексемы - это переменные, ключевые слова языка for, if и т.п.). ЛА не работает с контекстом, т.е. последовательность символов значения не имеет.
ЛА решает следующие задачи:
1. Преобразование знаков в символы.
2. Обработка пробелов.
3. Удаление комментариев.
На сегодняшний день существуют уже готовые инструменты для построения ЛА. Одним из таких мы и воспользуемся в дальнейшем.
В ходе Синтаксического анализа определяется структура программы. СА работает с контекстом, используя символы полученные при ЛА. Результатом работы СА является описание программы в форме дерева (синтаксическое дерево).
СА считывает символы и проверяет получаемую последовательность на ошибки. В дальнейшем рассмотрим два метода СА: метод рекурсивного спуска и SLR(1).
СА так же как и ЛА может быть построен автоматически:
В ходе Семантического анализа решаются проблемы совместимости типов переменных, области видимости и т.д.
P.S. В следующий раз немного поговорим о грамматике и языке. И более подробно изучим Лексический анализатор: сделаем свои первые наброски этого чуда, а так же попробуем автоматизировать данный процесс.