
- •Описати омновні принципи класифікації мов програмуванняю
- •Що таке мова програмування. Описати універсальні й спеціалізовані мови.
- •Формальні мови. Основні поняття і визначення.
- •Формальне визначення граматики 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. Що таке оптимізація коду. Опишіть загальні методи оптимізації.
9. Які калси граматик існують ? Які граматики відносяться до класу регулярних граматик ?
7-
Праволінійна граматика. Всі правила мають вигляд:
або
Ліволінійна граматика. Всі правила мають вигляд:
або
10.Що таке ланцюжки виводу та сентенціальна форма ? Опишіть проблеми однозначності і еквівалентності граматик.
Ланцюжки виводу – це певні послідовності символів, які виводяться у належному порядку. Сентенціальна форма – це ціпка, яка виводиться із початкового не термінала граматики G.
Синтаксичні визначення встановлюють правила побудови елементів мови. Семантика визначає зміст і правила використання тих елементів мови, для яких були дані синтаксичні визначення.
11 (8). Опишіть способи представлення граматики мов. Що таке синтаксичні діаграми ?
Синтаксична діаграма - це спрямований граф з одним вхідним ребром і одним вихідним ребром і позначеними вершинами. Синтаксична діаграма задає мову. Ланцюжок позначок при вершинах на будь-якому шляху від вхідного ребра до вихідного - це ланцюжок мови, що задається синтаксичної діаграмою. Тому можна вважати, що синтаксична діаграма - це одна з форм породжує граматику автоматних мов. Синтаксичні діаграми і кінцеві автомати мають тісний зв'язок: будь-яка автоматична мова задається синтаксичною діаграмою і навпаки, по будь-якій синтаксичної діаграмі можна побудувати кінцевий автомат (у загальному випадку недетермінірованний), що розпізнає ту ж мова, яку задає діаграма.
12. Дерево синтаксичного розбору. Перехід від дерева до правил формальної граматики.
У мовах, породжених контекстно вільними граматиками, виведення можна зображати графічно за допомогою орієнтованих кореневих дерев. Їх називають деревами виведення, або деревами синтаксичною розбору.
Кореню цього дерева відповідає початковий символ, внутрішнім вершинам нетермінальні символи, що зустрічаються у виведенні, листкам SA Ba bCc bтермінальні символи. Нехай ланцюжок і Aпродукція, використана у виведенні. Тоді
вершина, що відповідає нетермінальному символу A, має синами вершини, які відповідають кожному символу ланцюжка в порядку зліва направо.
Наприклад, визначимо, чи ланцюжок cbab належить мові, породженій граматикою
G = (V, T, S, P), де V = {a, b, c, A, B, C, S}, T = {a, b, c}, S початковий символ, а множина продукцій P = { SAB, A Ca, B Ba, B Cb, B b, C cb, Cb}.
13. Як виглядає опис граматики у формі Бєкуса-Наура.
Форма Бекуса - Наура (скор. БНФ , Бекуса - Наура форма) - формальна система опису синтаксису , в якій одні синтаксичні категорії послідовно визначаються через інші категорії . БНФ використовується для опису контекстно- вільних формальних граматик . Існує розширена форма Бекуса - Наура , що відрізняється лише більш ємними конструкціями. БНФ - конструкція визначає кінцеве число символів ( нетерміналів ) . Крім того , вона визначає правила заміни символу на якусь послідовність букв ( терміналів ) і символів. Процес отримання ланцюжка букв можна визначити поетапно: спочатку є один символ ( символи звичайно полягають в кутові дужки , а їх назва не несе жодної інформації). Потім цей символ замінюється на деяку послідовність букв і символів , відповідно до одного з правил. Потім процес повторюється (на кожному кроці один із символів замінюється на послідовність , згідно з правилом ) . Зрештою , виходить ланцюжок , що складається з букв і не містить символів. Це означає , що отримана ланцюжок може бути виведена з початкового символу .