Читать реферат по информатике, вычислительной технике, телекоммуникациям: "Построение формального языка 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
Сделаем замену терминальных символов:
WHILE a
( b
) c
; d
Цf
Б g
, h
G[Z]:
Z abAc[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();
Z abAc[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 | Ω
Z
a bAc D
B A ECB g{g} b G cECΩgEg
While (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--- ;
Похожие работы
| Тема: Построение формального языка L |
| Предмет/Тип: Информатика, ВТ, телекоммуникации (Другое) |
| Тема: Построение формального языка L |
| Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат) |
| Тема: Разработка и отладка формального языка |
| Предмет/Тип: Другое (Курсовая работа (т)) |
| Тема: Разработка и отладка формального языка |
| Предмет/Тип: Информатика, ВТ, телекоммуникации (Курсовая работа (т)) |
| Тема: Соотношение формального и семантического аспектов предложения (на материале английского языка) |
| Предмет/Тип: Английский (Диплом) |
Интересная статья: Быстрое написание курсовой работы

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