Контрольні запитання на мкр №1
Мови програмування та мовні процесори
-
Які три аспекти як правило виділяють при вивчення мов програмування?
-
Які два поділи мов програмування в залежності від орієнтації на розв’язання тих чи інших класів задач вам відомі?
-
Які традиційні функції обробки типу даних “рядок” вам відомі?
-
Які два класи задач пов’язаних з синтаксичними структурами програм вам відомі?
-
Які два типи мовних процесорів вам відомі?
-
Опишіть структуру транслятора.
-
Що таке лексема?
-
Які два поділи оптимізації ви знаєте?
Лексичний аналіз та скінченні автомати
-
У чому призначення лексичного аналізу?
-
Що таке недетермінований скінчений автомат?
-
Яку мову розпізнає скінченний автомат?
-
Які два способи визначення функції переходів ви знаєте?
-
Спробуйте “зламати” вищенаведений автомат для цілочислових констант мови C (зверніть увагу на зауваження).
-
Що таке детермінований скінчений автомат?
-
Сформулюйте і доведіть теорему про детермінізацію скінченного автомата.
-
Нехай функція переходів не однозначна, але у той же час набуває не багато різних значень на одному наборі аргументів, наприклад не більше двох, тобто для довільних і . Чи можна тоді отримати кращу оцінку зверху на кількість станів еквівалентного детермінованого автомату ніж ?
Мінімізація детермінованих скінчених автоматів
-
Які автомати називаються еквівалентними?
-
Який стан автомату називається недосяжним?
-
Опишіть алгоритм пошуку недосяжних станів і доведіть його збіжність. Бонус: оцініть складність цього алгоритму за часом і пам’яттю.
-
Який стан автомату називається тупиковим?
-
Опишіть алгоритм пошуку тупикових станів і доведіть його збіжність. Бонус: оцініть складність цього алгоритму за часом і пам’яттю.
-
Які стани називаються еквівалентними?
-
Опишіть алгоритм пошуку еквівалентних станів і доведіть його збіжність. Бонус: оцініть складність цього алгоритму за часом і пам’яттю.
-
Опишіть алгоритм мінімізації детермінованого скінченного автомату. Бонус: виведіть з попередніх оцінок складність цього алгоритму за часом і пам’яттю.
Скінченно-автоматні мови і праволінійні граматики
-
Які три базові скінченно-автоматні мови ви знаєте?
-
Доведіть, що мови з попереднього питання справді є скінченно-автоматними.
-
Які три операції над скінченно-автоматними мовами ви знаєте?
-
Доведіть, що результати операцій з попереднього питання справді є скінченно-автоматними.
-
Що таке породжуюча граматика?
-
Які чотири типи граматик за Хомським ви знаєте?
-
Що таке праволінійна граматика?
-
Дайте визначення безпосереднього виведення, виведення, породженої граматикою мови.
-
Доведіть, що скінченний автомат це майже праволінійна граматика.
Регулярні множини і регулярні вирази
-
Яка множина називається регулярною (в алфавіті )?
-
Як регулярні вирази позначаються регулярні множини?
-
Які класичні тотожності алгебри регулярних виразів ви знаєте?
-
Які не класичні тотожності алгебри регулярних виразів ви знаєте?
-
Який розв’язок лінійного рівняння називається найменшою нерухомою точкою?
-
Доведіть, що згаданий у попередньому рівняння вираз справді є розв’язком.
-
Сформулюйте алгоритм Гауса розв’язування систем лінійних регулярних рівнянь.
-
Розв’яжіть систему :
ПОЛІЗ, регулярні вирази, і автомати
-
Що таке ПОЛІЗ?
-
Чи можна в ПОЛІЗ опускати операції які природнім чином опускаються у класичному записі?
-
Яка основна характеристика ПОЛІЗ і яку обчислювальну перевагу вона пропонує?
-
Сформулюйте алгоритм перетворення регулярного виразу у ПОЛІЗ та оцініть його складність.
-
Що є результатом інтерпретації ПОЛІЗ регулярного виразу?
-
Сформулюйте алгоритм інтерпретації ПОЛІЗ регулярного виразу.
-
Оцініть складність попереднього алгоритму через складності операцій побудови автоматів.
-
Для регулярного виразу побудуйте скінчений автомат, який розпізнає множину ланцюжків, що позначаються цим виразом.
(традиційні відповіді можна переглянути у коментарях у вихідному коді цієї сторінки)