Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
30
Добавлен:
31.03.2015
Размер:
363.01 Кб
Скачать

1.5.1.Основные определения

Слово (символ) - элемент словаря языка.

Предложение - последовательность слов.

Терминальные символы - основные символы языка (буквы, цифры, служебные символы, ключевые слова).

Нетерминальные символы - грамматические категории языка (идентификатор, константа, выражение, инструкция и т.д.).

Синтаксис - совокупность правил и формул, которые задают множество (формально-правильных) предложений.

Грамматический разбор - процесс распознавания предложений и их структуры.

Язык L = L(T,N,P,S) задается: а) словарем Т терминальных символов, б) множеством N нетерминальных символов, в) множеством Р порождающих правил (синтаксисом), г) символом S (из N), называемым начальным символом, порождащим язык L.

1.5.2. Пример задания некоторого языка l1 в бнф

<индексное выражение> ::= [<простое выражение>]

<простое выражение> ::= <буква><цифра>

<простое выражение>+<буква>

<простое выражение>-<цифра>

<буква> ::= AB

<цифра> ::= 123

В примере используются следующие символы:

[, ], +, -, A, B, 1 , 2, 3 - терминальные символы (словарь Т);

<индексное выражение>, <простое выражение>, <буква>, <цифра> - нетерминальные символы, (заключаются в угловые скобки);

<индексное выражение> - начальный символ.

[A]

Примеры предложений [2]

языка L1 : [A-3]

[A+B-1+A-2]

. . .

Каждое предложение порождающего правила (справа от "::=") содержит композицию терминальных и (или) нетерминальных символов, которая может быть представлена тремя формами.

  1. Последовательность, когда один символ следует за другим.

Например: <простое выражение> содержит 3 последовательных символа А-3.

Синтаксический анализ очередного символа в последовательности происходит только в том случае, если предыдущие символы правильные (или ошибка локализована). Следовательно, при разборе используется логическая операция "И".

Например,

если ("[" - верно) И (<простое выражение> - верно) И ( "]"- верно) то

ошибок нет.

2)Альтернатива, когда одна часть предложения отделяется от другой разделителем "" (ИЛИ). Для продолжения разбора достаточно, чтобы верной была одна из этих частей.

Например, разбор конструкции <простое выражение> должно начинаться с проверки: если <буква> ИЛИ <цифра> то продолжение просмотра.

3)Повторение, когда предложение содержит рекурсию: среди символов предложения есть определяемый символ (стоящий слева от "::=" ). Для реализации потребуется рекурсивная процедура.

Соседние файлы в папке METOD2