
- •4.Основні частини компілятора.
- •5Лексичний аналіз роботи з таблицями
- •6. Синтаксичний та семантичний аналіз, дерева
- •7. Польський запис, тетради.
- •8. Формальне визначення мови, операції над мовами.
- •9. Граматики
- •11.Регулярний вираз
- •12) Нормальна форма Бекуса-Наура
- •13. Ієрархія Хомського
- •14. Регулярні граматики.
- •15. Скінченні автомати
- •16. Детерміновані і недетерміновані кінцеві автомати.
- •18. Побудова детермінованих кінцевих автоматів за недетермінованими кінцевими автоматами.
- •19. Програмування сканера.
- •20. Таблиці символів, хеш-функції, хеш-адресація
- •21. Колізія, ре хешування
- •23.Контекстно-выльны граматики.
- •24. Синтаксично-керований переклад
- •25. Переклад інфіксної форми запису у польську
- •26. Алгоритм синтаксично-керованого перекладу:
- •27. Автомати з магазинною пам’яттю
- •28. Операторні граматики
- •29.Алгоритм розборуоператорних грамматик.
- •37. Оптимізація булевих виразів, циклів.
- •38. Генерація коду. Скп на мову Асамблер.
- •39. Інтерпретатори, адресація, представлення ідентифікаторів.
- •40 Компілятор компіляторів.
- •41 Генератор лексичних аналізаторів.(lex)
- •42. Генератор синтаксичних аналізаторів.
- •43. Приклади застосування генераторыв.
25. Переклад інфіксної форми запису у польську
Інфіксна форма – це форма, при якій оператор записується між оперантами. Цей запис є дуже незручним для синтаксичної обробки. Альтернативною до інфіксної форми є так звана польська форма запису виразів. Тут є 2 форми запису: 1)Префіксна(операція перед оперантами)2) постфіксна(операція після оперантів)
26. Алгоритм синтаксично-керованого перекладу:
1) в стек заноситься символ #;
2) до вмісту стеку заноситься яке-небудь правило із списку правил;
3) якщо ніяких правил не можна застосувати то заноситься символ аналізованої послідовності вх. Послідовності.
Приклад:
S –стек, R
–символ, що розбивається,
-вх ланцюжок,
-
те що ще не розібрано.
Розбір у вигляді таблиці.
S |
R |
|
Nправ |
Польс. запис |
# #a #F #T |
a * * * |
|
9 6 |
a a a |
#T* #T*( #T*(b |
( b + |
b+c)# +c)# c)# |
9 |
a a ab |
#T*(F #T*(T #T*(E #T*(E+ #T*(E+c #T*(E+F #T*(E+T #T*(E #T*(E) #T*F #T #F #z
|
+ + + c ) ) ) ) # # # # # |
c)# c)# c)# )# # # # # |
6 2
9 6 3
10 7 2 1 stop |
ab ab ab ab abc abc abc+ abc+ abc+ abc+* abc+* abc+* abc+* |
Недолік: повний перебір усіх можливих правил граматики. Його виключати можна внесенням певних правил, умов.
27. Автомати з магазинною пам’яттю
Теоретично скінченні автомати застосовуються лише до регулярних граматик. Для контексто-вільної:
G=({a,+,_,*,/,(,)}, {E,T,F},P,E)
P={E
T
E+T
E-T
T F T*F T/F
E a F}. Створення складних автоматів неможливо. Граматики існує більш складні структури, автомати з магазинною пам’ятю – стековий автомат (СА) – це сітка.
-
скінченно вхідний алфавіт, вхідний
словник,
-
скінченна множина станів, Г – скінченність
стекових (магазинних)символів,
- початковий стан кер. пристроїв
,
-
символ, що знаходиться в стекі в початковий
момент часу
,
Т – множина заключних станів
,
Р – правило перех. відображення мн. виду
у
множину скінченних підмножин множини
а1 |
а2 |
|
|
ак |
|
|
аn |
|
|


-
z1
z2
….
zm
Конфігурація стекового автомата називається трійка.
~z
,
де q – поточний стан
пристрою, w- не використана
частина вхідного ланцюжка 1-й символ
цього ланцюжка знаходиться на ланцюжку
зчитування,
-
вміст магазину, самий лівий елемент
,
якщо а=е то магазин порожній.
Такт роботи степового автомату:
,
якщо а=е, то такий такт називається
порожнім (е-такт). Тут вхідний символ не
приймається до уваги і вхідна головка
не зчитує змісту.
=е
з
магазину знищується верхній символ.
-
початковий стан. Ланцюжок w
допуск. стек. Автоматом, якщо існує
множина переходів
для
деяких
і
,
-
порожній ланцюжок. В розш. стек. авт.
вхідні символи мають той самий зміст
,
де
-
відображення множини
у
множині скінченної підмножини
.
Розш. авт. може продовж. Роботу навіть
тоді, коли магазин порожній.
Теорема: Нехай існує G конкретно-вільна граматика по гр. G можна побудувати такий автомат СА, що L(R)=L(G), тобто можна побудувати R, що мова яка породжується еквівалентна пам’яті дорівнює мові, що створюється граматикою.
Приклад:
}
Визначимо СА :
Р: (1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
,
Зауваження: (1)і (2) застосовується
лише тоді, коли наступним вхідним
символом є
.
Пріорітет виконується правил визнач.
вмістом стеку. Якщо доповнити авт. з
маг. пам’ятю набором семент. процедур,
то крім розпізнання він ще буде формувати
польський запис. СА можна вважати більш
формальним викладенням синт. кер.
перекладу.