Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Реферат: Контекстно-вільні та LA-граматики

Название: Контекстно-вільні та LA-граматики
Раздел: Рефераты по астрономии
Тип: реферат Добавлен 09:31:15 26 января 2011 Похожие работы
Просмотров: 6 Комментариев: 20 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно     Скачать

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

Контекстно-вільні та LA(1)-граматики

1. Контекстно-вільні граматики

Контекстно-вільною , або КВ-граматикою , називається граматика, в якій ліві частини всіх продукцій є нетерміналами. Зміст терміну "контекстно-вільна" полягає в тім, що застосування продукції A ® w до ланцюжка uAv не залежить, тобто є вільним від сусідніх з A символів, які утворюють контекст uv .

Зазначимо, що БНФ вигляду A ::=w цілком аналогічна продукції A ® w . Отже, сукупності БНФ є просто іншою формою КВ-граматик.

Контекстно-вільною мовою (КВ-мовою ) називається мова, що може бути задана КВ-граматикою.

Прикладами КВ-граматик та КВ-мов є граматики з прикладів 21.3 , 21.5 , 21.6 у попередньому параграфі й задані ними мови. Граматика з прикладу 21.7 не є КВ-граматикою. До речі, мова, задана нею, не є КВ-мовою, оскільки не існує КВ-граматики, яка б її задавала.

КВ-граматики відіграють особливу роль у програмуванні, оскільки ними описується синтаксис практично всіх конструкцій мов програмування. Більше того, він описується КВ-граматиками, продукції яких задовольняють певні структурні обмеження. З використанням цих обмежень було побудовано алгоритми синтаксичного аналізу, час виконання яких прямо пропорційний довжині аналізованого слова. А лінійна складність цих алгоритмів великою мірою зумовила ефективність сучасних систем програмування.

2. Дві ідеї аналізу

Заміна нетермінала з лівої частини продукції на її праву називається розгортанням нетермінала , а зворотна заміна – згортанням правої частини . Розглянемо дві стратегії аналізу, основані на згортаннях та на розгортаннях, за допомогою наступного прикладу.

Приклад 8. Нехай

G 0 = ( { a , +, *, (, ) }, { E , T , F },

{ E ® E + T | T , T ® T * F | F , F ® (E ) | a },

E )

– граматика. Нетермінали E , T , F відповідно є скороченнями слів "E xpression", "T erm", "F actor", тобто "вираз", "доданок", "множник". Вони позначають вирази зі знаками операцій +, *, доданки та множники в них відповідно.

Виведення слова a +a *a в G 0 з розгортанням нетерміналів, перших ліворуч у проміжних ланцюжках , має вигляд:

E Þ E +T Þ T +T Þ F +T Þ a +T Þ a +T *F Þ a +F *F Þ a +a *F Þ

Þ a +a *a

Тут нетермінали, що розгортаються, підкреслені. Аналіз ланцюжка, що відтворює такі розгортання від початкового символу до термінального слова, називається низхідним , або аналізом "від верху до низу ".

Тепер розглянемо виведення слова a +a *a з розгортанням нетерміналів, останніх праворуч :

E Þ E +T Þ E +T *F Þ E +T *a Þ E +F *a Þ E +a *a Þ T +a *a Þ F +a *a Þ

Þ a +a *a

Проміжні слова в цьому виведенні, записані у зворотному порядку, дістаються згортаннями правих частин продукцій, починаючи з термінального слова. Такі згортання від ланцюжка терміналів до початкового нетермінала граматики відтворюються в процесі висхідного аналізу , або аналізу "від низу до верху ".-

Головною проблемою побудови алгоритмів аналізу в обох випадках є необхідність вибору продукції, застосованої для розгортання чи згортання. Чому, наприклад, у першому виведенні на першому кроці вибирається продукція E ® E +T , а не E ® T , а на другому, навпаки, E ® T ? Чому за оберненого виведення в слові E +T *F , в якому є дві праві частини продукцій E +T і T *F , саме ланцюжок T *F згортається в T , а не E +T в E ? Тут необхідний вибір зроблено тому, що структура термінального слова була відома заздалегідь. Але, взагалі, структура слова до початку його аналізу невідома, і виникає необхідність перебирати продукції для застосування потрібної.

Теоретично, можна розробити алгоритм аналізу на основі перебирання продукцій, але він буде практично неприйнятним внаслідок його оцінки складності. Один із шляхів до ефективних алгоритмів аналізу полягає в обмеженні структури продукцій і позбавленні від перебирання за рахунок звуження множини КВ-граматик. Далі розглядаються саме такі обмежені граматики та побудова алгоритму аналізу для них, складність якого лінійна.

3. LA(1)-граматики

LA(1)-граматики дозволяють вибирати необхідну для розгортання продукцію при низхідному аналізі за першим символом ще не розпізнаної частини слова. "LA(1)" позначає речення "L ook A head 1 symbol", тобто "подивитися спереду на 1 символ".

Нехай G =(X , N , P , S ) – КВ-граматика, і за словом w треба визначити, чи належить воно до L (G ). Нехай S ® v 1 |…|vp – усі продукції з нетерміналом S ліворуч. Потрібну для розгортання S продукцію S ® vi можна визначити безпосередньо за першим символом слова w , якщо множини перших символів ланцюжків, вивідних із v1 , v2 , … , vp , не перетинаються . Взагалі, нехай am an – нерозпізнана частина слова, початок якої має виводитися з нетермінала A , і A ® w 1 |…|wk – усі продукції з A ліворуч. Тоді потрібна для розгортання A продукція A ® wi визначається за першим символом am , якщо множини перших символів ланцюжків, вивідних з w1 , w2 , … , wk , не перетинаються .

Отже, для кожного нетермінала A та кожної правої частини wi продукцій A ® w 1 | w 2 | … | wk означимо множини

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

first ( A ) = first ( wi ).

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

follow ( A ) = { a | S Þ * uAv , a Î first ( v ) }.

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

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

first ( wi ) Ç first ( wj ) = Æ при i , j = 1, … , k , i ¹ j ;

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

first ( A ) Ç follow ( A ) = Æ .

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

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

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

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

first ( F ) = { a , ( }; first ( T *F ) = first ( F ), звідки

first ( T *F ) Ç first ( F ) ¹ Æ ,

тобто G 0 не є LA(1)-граматикою. Проте мова виразів L(G 0 ) задається еквівалентною LA(1)-граматикою. Побудуємо її.

Із T виводяться слова F , F *F , F *F *F , … . Додамо нетермінал B та правила B ® e |*FB , T ® FB замість правил T ® F |T *F . Маємо

first ( T ) = first ( F ) = { a , ( }, first ( *FB ) = { * },

first ( B ) = { * }, follow ( B ) = follow ( T ) =

= follow ( E ) = { +, ) }.

Отже, продукції T ® FB і B ® e |*FB не порушують LA(1)-умови. Аналогічно, додавши нетермінал A , а замість правил E ® E +T |T правила E ® TA , A ® e |+EA , одержимо LA(1)-граматику.-

4. Ліворекурсивні та розширені продукції

Правило вигляду A ® Av називається ліворекурсивним . Якщо в граматиці є продукції A ® Av |u , де u ¹ e , то first(Av )=first(u )¹ Æ , і граматика не є LA(1)-граматикою. Але за допомогою цих правил виводяться слова з множини {u , uv , uvv , …}, яка задається регулярним виразом uv * або u {v }. Замість продукцій A ® Av |u запишемо A ® u {v }. Продукції з регулярними виразами в правій частині називаються розширеними , як і граматики з такими продукціями. Неважко переконатися, що розширені правила не збагачують множину мов, породжених КВ-граматиками.

Приклад 10. Розширена граматика G 01 із правилами E ® T {+T }, T ® F {*F }, F ® (E )|a еквівалентна граматиці G 0 . Фактично РБНФ є іншим записом розширених продукцій, а сукупності РБНФ – іншою формою розширених КВ-граматик.-

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Хватит париться. На сайте FAST-REFERAT.RU вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую!
Никита06:57:22 04 ноября 2021
.
.06:57:20 04 ноября 2021
.
.06:57:18 04 ноября 2021
.
.06:57:15 04 ноября 2021
.
.06:57:13 04 ноября 2021

Смотреть все комментарии (20)
Работы, похожие на Реферат: Контекстно-вільні та LA-граматики

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(294402)
Комментарии (4230)
Copyright © 2005 - 2024 BestReferat.ru / реклама на сайте