вторник, 22 сентября 2009 г.

Учимся "говорить" (Part 3 - Анализаторы)

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

     P.S. В следующий раз немного поговорим о грамматике и языке. И более подробно изучим Лексический анализатор: сделаем свои первые наброски этого чуда, а так же попробуем автоматизировать данный процесс.

Комментариев нет:

Отправить комментарий