- •Описати омновні принципи класифікації мов програмуванняю
- •Що таке мова програмування. Описати універсальні й спеціалізовані мови.
- •Формальні мови. Основні поняття і визначення.
- •Формальне визначення граматики g(V). Що таке продукція? Опишіть поняття термінального і не термінального символу.
- •Формальне визначення мови l(g). Види мов.
- •6. Що таке граматика ? Дайте визначення і наведіть приклади.
- •8. Класифікація граматик і мов за Хомським. Співвідношення між типами граматик.
- •9. Які калси граматик існують ? Які граматики відносяться до класу регулярних граматик ?
- •10.Що таке ланцюжки виводу та сентенціальна форма ? Опишіть проблеми однозначності і еквівалентності граматик.
- •11 (8). Опишіть способи представлення граматики мов. Що таке синтаксичні діаграми ?
- •12. Дерево синтаксичного розбору. Перехід від дерева до правил формальної граматики.
- •13. Як виглядає опис граматики у формі Бєкуса-Наура.
- •14. Дайте визначення ланцюжка, мови. Що таке синтаксис і семантика мови ?
- •15 (11). Опишіть способи представлення граматики мов. Що таке синтаксичні діаграми
- •16. Перетворення граматик.
- •17. Що таке розпізнавач. У чому полягає задачі розбору ?
- •18. Формальне визначення автомата.
- •19. Що таке скінченний автомат? Дайте визначення детермінованого й не детермінованого скінчених автоматів.
- •20. Скінченний автомат. Описати характеристики скінченного автомата.
- •21. Описати зв’язок граматики із скінченним автоматом.
- •22. Визначте структуру скінченного автомата і функції його елементів .
- •23. Опишіть способи завдання функцій переходів са.
- •24. Опишіть алгоритм побудови дса по нса
- •25. Регулярні граматики. Способи завдання регулярних мов.
- •26. Скінченні автомати. Регулярні граматики. Регулярні множини.
- •27. Побудова са на основі ліволінійної граматики, видимості ланцюжка.
- •28 (25). Властивості регулярних мов
- •29. Описати основні поняття автомата з магазинною пам’ятю, його структуру і характеристики.
- •30. Дайте визначення контекстно-вільної граматики, виводимості ланцюжка, безпосередньої виводимості, довжини виводу.
- •31 (30). Описати основні компоненти контекстно-вільних граматик.
- •32. Перетворення контекстно вільних граматик.
- •33. Приведення контекстно-вільних граматик.
- •34. Опишіть принципи побудови лексичних аналізаторів.
- •43. Опишіть переваги і недоліки таблиць ідентифікаторів за допомогою хеш-функцій. Що таке колізія? Чому вона відбувається?
- •44. Опишіть найпростіші методи побудови таблиць ідентифікаторів.
- •49. Опишіть клас граматики, який використовується на етапі створення синтаксичного аналізатора.
- •50. Опишіть lr(k)-граматики.
- •51. Опишіть ll(k)-граматики.
- •52. Транслятори, компілятори та інтерпретатори – описати загальну схему роботи.
- •53. З яких процесів складається компіляція? Опишіть загальну структуру компілятора.
- •54. Що таке трансляція, компіляція, транслятор, компілятор ?
- •55. Опишіть загальну схему роботи компілятора.
- •57. Семантичний аналіз та підготовка до генерації коду.
- •58. Що таке генерація коду? Опишіть методи генерації коду.
- •59. Способи внутрішнього представлення програми.
- •60. Що таке оптимізація коду. Опишіть загальні методи оптимізації.
Формальне визначення граматики g(V). Що таке продукція? Опишіть поняття термінального і не термінального символу.
G(V) – G- граматика. V - це множина ланцюжків. Р- кінцева множина правил виводу, що називається також продукціями. Множину V\T позначають N, її елементи називають нетермінальними (допоміжними) символами. T її підмножина, елементи якої називають термінальними (основними) символами;
Формальне визначення мови l(g). Види мов.
L(G) – мова породжувана граматикою. мова L(G) є мовою типу k, якщо її можна описати граматикою типу k.
1) Мова типу 0: L(G) = {a2 в степені n | n >= 1}
2) Мова типу 1: L(G) = { an bn cn, n >= 1}
3) Мова типу 2: L(G) = {(ac)n (cb)n | n > 0}
4) Мова типу 3: L(G) = { | {a,b}+, де немає двох а, що стоять поруч }
6. Що таке граматика ? Дайте визначення і наведіть приклади.
Граматика ( що породжує мову) G - це четвірка (N, T, P, S), де T - алфавіт термінальних символів ( терміналів ), N - алфавіт нетермінальних символів (нетерміналів), що не перетинається з T, P - кінцева підмножина множини (T N)+ (T N)*; елемент ( , ) множини P називається правилом виводу і записується у вигляді , S - початковий символ (аксіома) граматики, S N.
Приклад граматики: G1 = ({0,1}, {A,S}, P, S), де P складається із правил
S 0A1 0A 00A1 A
Описати й навести приклади класифікації формальних граматик.
Тип 0. Граматики Типу 0
це найзагальніший клас граматик. На правила не накладаються ніяких обмежень, окрім зазначених у визначенні. Вони еквівалентні Машині Тюринга. Доведено існування мов, які породжуються граматиками типу 0, але не граматиками типу 1, але невідомі прості приклади таких мов.
Тип 1. Граматики Типу 1
нескорочуюча або контекстно-залежна(КЗ) граматика. Вибір означення не впливає на множину мов, породжуваних граматиками цього класу, оскільки доведено, що множина мов, породжуваних граматиками, що не укорочують, збігається із множиною мов, породжуваних КЗ-граматиками.
Тип 2. Граматики Типу 2. Контекстно-вільні граматики(КВ)
Тобто в усіх правилах цього виду зліва стоїть тільки один нетермінал. Тому вони і контекстно вільні, бо на використання правила для даного нетерміналу не впливають символи, що оточують його. Ці символи називають контекстом.
Тип 3. Граматики Типу 3. Регулярні граматики. А-граматики
можна визначити як праволінійну або ліволінійну граматику, або як змішану. Також ці мови називають скінченно-автоматними, бо вони еквівалентні скінченним автоматам, тобто клас мов, що породжуються граматиками типу 3, збігається з класом мов, які розпізнаються скінченими автоматами. Також ці граматики є основою регулярних виразів.
8. Класифікація граматик і мов за Хомським. Співвідношення між типами граматик.
Граматика G = (T, N, P, S) називається граматикою типу 0, якщо на правила виводу не накладається ніяких обмежень (крім тих, котрі зазначені в означенні граматики).
Граматика G = (T, N, P, S) називається граматикою, що не укорочує, якщо кожне правило з P має вид , ), де (T N)+, (T N)+ і | | <= | |.
Граматика G = (T, N, P, S) називається контекстно-залежною ( КЗ ), якщо кожне правило з P має вид , де = 1A 2; = 1 2; A N; (T N)+; 1, 2 (T N)*.
Граматику типу 1 можна означити як таку, що не укорочує, або як контекстно-залежну.
Вибір означення не впливає на множину мов, породжуваних граматиками цього класу, оскільки доведено, що множина мов, породжуваних граматиками, що не укорочують, збігається із множиною мов, породжуваних КЗ-граматиками.
Граматика G = (T, N, P, S) називається контекстно-вільною, якщо кожне правило з Р має вид A , де A N, (T N)*.
Граматику типу 2 можна визначити як контекстно-вільну.
Граматика G = (T, N, P, S) називається праволінійною, якщо кожне правило з Р має вид
A t або A t, де A N, B N, t T.
Граматика G = (T, N, P, S) називається ліволінійною, якщо кожне правило з Р має вид
A Bt або A t, де A N, B N, t T.
Граматику типу 3 (регулярну, A-граматику) можна визначити як праволінійну або як ліволінійну.
Співвідношення між типами граматик: (1) будь-яка регулярна граматика є КС-граматикою; (2) будь-яка регулярна граматика є УКС-граматикою; (3) будь-яка КС-граматика є КЗ-граматикою; (4) будь-яка КС-граматика є неукорачівающей граматикою; (5) будь-яка КЗ-граматика є граматикою типу 0. (6) будь-яка нескорочена граматика є граматикою типу 0.
