Читать другое по информатике, вычислительной технике, телекоммуникациям: "Построение формального языка L" Страница 1
Построение формального языка L
WHILE( ) []; WHILE - входной терминальный символ - условное выражение - некоторая функция, которая может отсутствовать- параметры функции, которые тоже могут отсутствоватьПример правильного синтаксиса:WHILE(A>4444 T| = T | != T O | T*O | T**O | T+O | T-O | T/O () | |Б{Б|Ц}Ц{Ц}([{,}]) | |
Классификация G[Z]
G[]:
while( ) []; T| < t| > T| = T | != T O | T*O | T**O | T+O | T-O | T/O () | |Б{Б|Ц}Ц{Ц} ([{,}]) | |
Сделаем замену нетерминальных символов:
Z
A
B
C
D
E
F
G
Сделаем замену терминальных символов:
WHILEa
(b
)c
;d
Цf
Бg
,h
G[Z]:
ZabAc[D]dA B|A B|A = B |A != BB C | B*C | B**C | B+C | B-C | B/CC bAc | E | F E g{g|f}F f{f}D Eb[G{hG}]cG E | F |
Вывод : G[Z] - контекстно-свободная грамматика.
Выбор метода анализаХотя однозначность в общем случае для контекстно-зависимых грамматик не доказана, ее использование возможно для грамматик в которых однозначность очевидна. Наиболее хорошо разработанным методом анализа, для данного типа грамматик является, метод рекурсивного спуска.
Диагностика и нейтрализация ошибок
Разработанный алгоритм относится к общеизвестному методу синтаксического разбора, предложенный Айронсом.
Основная идея метода состоит в том, что по контексту без возврата отбрасываются те символы, которые привели в тупиковую ситуацию и разбор продолжается.
Приведем пример синтаксического разбора: While (A > ) cls();
ZabAc[D]dA B|A B|A = B |A != BB C | B*C | B**C | B+C | B-C | B/CC bAc | E | F E g{g|f}F f{f}D Eb[G{hG}]cG E | F |
Za bAc D
B A ECB g{g} b G cECgEgWhile (A>)cls();
тупиковая ситуация
Тестирование на цепочках
Протокол работы синтаксического распознавателя оператора цикла while языка С.
_____________________________________________________________________
Обрабатываем строчку - While(a>)cls();
Найден While проверка началась с символа - (
Проверка на AB
Проверка на TERM
Проверка на O
Проверка на IDENT, текущий символ - a
Проверка на AB
Проверка на TERM
Проверка на O
Проверка на IDENT, текущий символ - )
Проверка на ЦБЗ,текущий символ - )
Проверка на FUNC, текущий символ - c
Проверка на IDENT, текущий символ - c Найденные ошибки в строке While(a>)cls(); Предупреждение: Отсутствует условие ()
Не найден идентификатор или ЦБЗ
_____________________________________________________________________
Обрабатываем строчку - while(13t*(ewqw++()*we) rscr(456,345,rtgrt,345444rtr,,,) Отсутствует (
Отсутствует )
Предупреждение: Отсутствует условие ()
Отсутствует ; после функции
Параметр функции не может начинатся с цифры
Неизвестный идентификатор(ы) -
435, 4,
Не найден идентификатор или ЦБЗ
Идентификатор не может начинаться с цифры
Не найден или не верный параметр
Неизвестная знаковая конструкция
_____________________________________________________________________
Обрабатываем строчку - whiLE(43-(sss(5445344>(5445r+erhgeerg(e>=rwe+++r+788erwe++)) scr(eee,qee>445--- ;Найден While проверка началась с символа - (
Проверка на AB
Проверка на TERM
Проверка на O
Проверка на IDENT, текущий символ - 4
Проверка на ЦБЗ,текущий символ - 4
Проверка на AB
Проверка на TERM
Проверка на O
Проверка на IDENT,
Похожие работы
| Тема: Построение формального языка L |
| Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат) |
| Тема: Построение формального языка L |
| Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат) |
| Тема: Разработка и отладка формального языка |
| Предмет/Тип: Другое (Курсовая работа (т)) |
| Тема: Разработка и отладка формального языка |
| Предмет/Тип: Информатика, ВТ, телекоммуникации (Курсовая работа (т)) |
| Тема: Соотношение формального и семантического аспектов предложения (на материале английского языка) |
| Предмет/Тип: Английский (Диплом) |
Интересная статья: Основы написания курсовой работы

(Назад)
(Cкачать работу)