Курсовая работа: Разработка программы-компилятора

<имя>→<буква>{<буква>|<цифра>’_’}

<буква>→ (’a’. ’z’)

<цифра>→ (‘0’. ’9’)

Грамматика для констант:

<константа>→<16-рич. константа>|<римск. константа>

Для 16-ричных констант:

<16-рич. константа>→ (‘$+’,’$-‘) (<цифра>, ‘A’. ’F’) { (<цифра>,‘A’. ’F’) }


Для римских констант:

2.3 Разработка автоматов, работающих по правилам грамматики

2.3.1 Автомат для распознавания имён

рис.1. Автомат для распознавания имён

Состояния автомата:

S - начальное состояние;

1 - промежуточное состояние, соответствующее продолжению формирования имени;

2 - конечное состояние, соответствующее выделению правильного идентификатора;

3 - конечное состояние, соответствующее ошибке при выделении идентификатора.

2.3.2 Автомат для распознавания 16-ричных констант

рис.3. Автомат для распознавания 16-ричных констант

Состояния автомата:

S - начальное состояние;

1 - промежуточное состояние, обозначающее, что распознан символ начала константы ‘$’;

2 - промежуточное состояние, обозначающее, что распознан знак константы, и продолжение формирования константы;

3 - конечное состояние, соответствующее выделению правильной 16-ричной константы;

4 - конечное состояние, соответствующее ошибке при выделении 16-ричной константы.

2.3.3 Автомат для распознавания римских констант

Римские константы образуются по следующим правилам:

Римская система нумерации состоит из семи знаков: I - 1, V - 5, X - 10, C - 100, D - 500, M - 1000. В данной работе используются только три первых знака, т.е. автомат может распознавать числа от 1 (I) до 39 (XXXIX).

К-во Просмотров: 804
Бесплатно скачать Курсовая работа: Разработка программы-компилятора