Елементи синтаксичного аналізу, Детальна інформація

Елементи синтаксичного аналізу
Тип документу: Реферат
Сторінок: 12
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 27.8
Скачувань: 1258
\x00B4

\x00BA

1/4

A

Ae

E

I

\x00D0

Oe

e

i

i

o

oe

o

u

C означимо множини

first ( wi ) = { a | a \xF0CE X* і wi \xF0DE az для деякого слова z },

first ( wi ).

Граматика може мати так звані \xF065 -продукції вигляду A\xF0AE \xF065 . У такому разі, якщо Av\xF0DE *b1…bn, то b1 може починати слово, вивідне як з A, так і з v. Визначити за символом b1 , з чого саме виводиться слово, можна за умови, що first(A) не містить перших символів слів, вивідних із v. Множину цих перших символів ланцюжків, що виводяться з усіх можливих правих контекстів нетермінала A, позначимо follow (A):

follow ( A ) = { a | S \xF0DE * uAv, a \xF0CE first ( v ) }.

Граматика називається LA(1)-граматикою, якщо:

(1) для кожного нетермінала A з продукціями A\xF0AE w1|…|wk , де wi\xF0B9 \xF065 для всіх i=1,…,k, справджується умова

first ( wi ) \xF0C7 first ( wj ) = \xF0C6 при i, j = 1, … , k, i \xF0B9 j;

(2) для кожного нетермінала A такого, що в P є продукція A \xF0AE \xF065 , справджується

first ( A ) \xF0C7 follow ( A ) = \xF0C6 .

Умови (1), (2) називаються LA(1)-умовами.

Не кожна КВ-мова породжується LA(1)-граматикою, але синтаксис практично всіх конструкцій сучасних мов програмування можна задати LA(1)-граматиками. Досить часто мова "природно" задається не LA(1)-граматикою, але таку граматику для неї можна побудувати.

Приклад 9. За продукціями E\xF0AE E+T|T, T\xF0AE T*F|F, F\xF0AE (E)|a граматики G0 маємо

first ( (E) ) = { ( }, first ( a ) = { a }, звідки

The online video editor trusted by teams to make professional video in minutes