BigEdu.ru
» » » Побудова алгоритму LA-аналізу
Вернуться назад

Побудова алгоритму LA-аналізу

Реферат на тему:

Побудова алгоритму LA(1)-аналізу

1. Правила побудови

Нехай G =(X , N , P , S ) – LA(1)-граматика без e -правил, можливо, розширена. Опишемо побудову програми синтаксичного аналізу слів мови L (G ). Програма буде містити процедури, іменами яких є відповідні їм нетермінали граматики.

Процедура, відповідна нетерміналу A , описує аналіз ланцюжків, вивідних із A . Цими ланцюжками є слова мови або їхні підслова. Алгоритм процедури такий. Нехай A ® w 1 |…|wk – усі продукції з нетерміналом A ліворуч, a 1 a 2an – ланцюжок, початок якого треба виводити з A . Спочатку визначається, якій із множин first(w 1 ), … , first(wk ) належить символ a 1 . Нехай нею буде first(w 1 ), і в найпростішому випадку w 1 =Y 1 Y 2Ym , де Yi – термінал або нетермінал. Початок ланцюжка має виводитися з Y 1 .

Якщо Y 1 – термінал, то перевіряється рівність a 1 =Y 1 .

Якщо Y 1 – нетермінал, то з a 1 починається частина слова, вивідна з Y 1 , і для аналізу початку ланцюжка a 1 a 2 … викликається процедура Y 1 .

В обох випадках, після перевірки рівності або повернення з виклику Y 1 , за деякого j ³ 2 початок непроаналізованої частини ланцюжка aj aj +1 … повинен виводитися з Y 2 тощо. Перший символ непроаналізованої частини ланцюжка називатимемо поточним .

Отже, за правими частинами wi продукцій будуються фрагменти процедури A ; вони виконуються, коли поточний символ ланцюжка міститься у відповідній множині first ( wi ).

Зробимо уточнення програми та правил побудови процедур. Нехай w – слово, що аналізується, ch – його поточний символ, функція getc задає добування наступного символу слова, змінна finch позначає спеціальний символ, що повертається функцією getc після закінчення слова w . Нехай ok – бульова змінна, що є ознакою належності w Î L (G ), а процедура error задає присвоювання ok:=false . Тілом програми є

begin

ok := true ;

ch := getc;

S; { виклик процедури, відповідної }

{ головному нетерміналу }

writeln ( (ch = finch) and ok )

end .

Нехай A є нетерміналом із продукціями A ® w 1 |…|wk , а S 1 ,…, Sk позначають множини first(w 1 ),…,first(wk ), які не перетинаються. За таких умов тілом процедури A є складений оператор

begin

if ch in S1 then оператор-для-w1 else

if ch in Sk then оператор-для-wk else

error

end

Зокрема, якщо Si містить лише один символ x , то замість умови chin Si можна записати ch = x .

Праві частини розширених граматик є виразами, складеними з послідовностей символів алфавіту X і метасимволів, якими є дужки (), [], {} та символи |. Розглянемо праву частину v розширеного правила як послідовність виразів Y 1Yk , в якій Yi є або символом з X È N , або виразом вигляду (u ), [u ], чи {u }, що не міститься всередині інших дужок, де u – послідовність нетерміналів, терміналів и дужок. За правою частиною v будується складений оператор із послідовністю операторів, відповідних до Y 1 ,…,Yk . Нехай Y позначає один із виразів Y 1 ,…,Yk . Відповідний оператор визначається виглядом Y за наступними правилами.

· Якщо Y є першим терміналом Y 1 , то оператором є

ch:=getc.

· Якщо Y є терміналом, але не першим у ланцюжку v , то оператор має вигляд

if ch = Y then ch:=getc else error,

тобто треба перевірити збігання поточного символу з Y та перейти до наступного символу.

· Якщо Y є нетерміналом, то оператором є виклик процедури

Y.

· Якщо Y має вигляд (u 1 |…|um ) і Ti позначає first(ui ) при i =1,…,m , то треба визначити, до якої з множин Ti належить поточний символ, і ви

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать
Рефераты по астрономии Реферат на тему: Побудова алгоритму LA(1)-аналізу 1. Правила побудови Нехай G =(X , N , P , S ) – LA(1)-граматика без e -правил,
Оценок: 1006 (Средняя 5 из 5)

Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.

© 2016 - 2022 BigEdu.ru