5
ИНФОРМАЦИОННЫЕ СТРУКТУРЫ И ИХ
ПРЕОБРАЗОВАНИЕ
над этой проблемой, то можно представить следующую схему разбора этого
предложения:
Итак:
Красивый дом стоит у берега моря.
Выполним его разбор.
Необходима некоторая система правил построения предложения,
которая могла бы однозначно определить местоположение того или иного
слова в предложении.
<предложение> := <подлежащее> <сказуемое> ;
<подлежащее> := <определение> <существительное> ← нетерминальные
символы;
<сказуемое> := <глагол> <дополнение>;
<глагол> := стоит ← терминальные символы;
<дополнение> := у берега моря;
<существительное> := дом;
<определение> := красивый.
Наиболее распространенным способом формального описания
синтаксиса языков программирования являются нормальные формы Бэкуса-
Наура (БНФ). Синтаксис задается с помощью формул
<Идентификатор> := <Буква> |< Идентификатор > < Буква> | <Идентификатор>
<Цифра>.
Последовательности знаков, заключенные в скобки <>, представляют
собой переменные, значениями которых являются последовательности
символов, знаки := и | (последний со значением “ИЛИ”) – это связки. Любой
знак, который не является переменной или связкой, обозначает самого себя
(и класс знаков, ему подобных). Соединение знаков И (ИЛИ), переменных в
формуле, означает соединение обозначаемых последовательностей. Таким
образом, вышеприведенная формула задает рекурсивное правило для
образования имен из букв и цифр.
<предложение>
<подлежащее>
<сказуемое>
<определение>
красивый
<существительное>
<глагол>
<дополнение>
дом
стоит
у берега моря
1,2,3,4,5,6 8,9,10,11,12,13,14,15,16,17,...88