Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2008-04-14-02-21-Наталья-.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
825.86 Кб
Скачать

Определение синтаксиса лексем.

Определение автоматных грамматик, описывающих синтаксис лексем, будем выполнять в следующем порядке:

  • Разбить литеры, с помощью которых записываются программы на входном языке, на классы. В один класс помещаются литеры, которые одинаковым образом используются для образования лексем. Примерами классов литер являются: латинская буква, двоичная цифра, десятичная цифра, символ «=».

  • Составить автоматные грамматики, описывающие синтаксис лексем, при условии, что терминальными символами грамматики являются классы литер, а начальным символом грамматики – символ S.

Разобьем литеры на классы:

  • Латинская буква

  • Цифра

  • Однолитерные разделители

  • Двухлитерные и однолитерные разделителитили

И составим автоматные грамматики:

  1. Идентификатор id

ε1 – любой символ, кроме букв и цифр.

S буква id

id буква id

id цифра id

S ε1

  1. Целое без знака number

ε2 – любой символ, кроме цифр.

S цифра number

number цифра number

number ε2

  1. Вещественное vesh

ε2 – любой символ, кроме цифр.

S цифра vesh

vesh .T

vesh цифра

vesh E+T

vesh E-T

T цифра T

T ε2

  1. Однолитерные разделители 1–Liter {+, -, *, /, >, <, =, !, {, }, [, ], :, ;, , ., ?, ~ }

ε – любой символ.

S 1–Liter L

L ε3

  1. Двулитерные разделители 2–Liter = {++, --, +=, -=, *=, /=, >=, <=, ==, != }

ε3 – любой символ.

    1. S + N

N +

N ε3

    1. S - N

N -

N ε3

    1. S + N

N =

N ε3

    1. S - N

N =

N ε3

    1. S * N

N =

N ε3

    1. S / N

N =

N ε3

    1. S > N

N =

N ε3

    1. S < N

N =

N ε3

    1. S = N

N =

N ε3

    1. S ! N

N =

N ε3

Построение диаграммы лексического анализатора.

Построение диаграммы лексического анализатора выполним в следующей последовательности:

  • Для каждой лексемы строится граф конечного автомата, в котором начальное состояние отмечено символом S, а конечное состояние, соответствующее концу разбора лексемы, - символом F.

  • Начальное и конечное состояния отдельных конечных автоматов объединяются. Если построенный таким образом конечный автомат является недетерминированным, его преобразуют в детерминированный конечный автомат. Граф полученного детерминированного конечного автомата называется диаграммой лексического анализатора.

  1. Идентификатор

  1. Целое без знака

  1. В ещественное

  1. Однолитерные разделители

  1. Двулитерные разделители

  1. ++

  1. --

  1. +=

  1. -=

  1. *=

  1. /=

  1. >=

  1. <=

  1. ==

  1. !=

Общая схема:

3.4. Тестирование лексического анализатора.

Тестирование лексического анализатора заключается в моделировании его работы. Результатом этапа лексического анализа являются заполненные в ручную таблицы и выходной поток токенов для контрольного примера, представляющего собой программу на входном языке.