
- •6.050102 “ Комп’ютерна інженерія” та 6.050101 “Комп’ютерні науки”
- •1. Графи. Основні поняття та визначення
- •1.1. Визначення графа
- •1.2. Типи скінченних графів
- •1.3. Суміжність та інцидентність
- •1.4. Способи задання графів
- •1.5. Маршрути і підграфи
- •На орграфі рис. 1.4, а маршрут (е1, е2, е5) – простий шлях, що є контуром, а маршрут (е1, е2, е3) – простий неконтурний шлях.
- •1.6. Зв'язність і роздільність
- •1.7. Характеристики графів
- •1.8. Дерева і ліс
- •1.9. Приклади задач, які використовують зважені графи
- •2.1. Логіка висловів. Загальні поняття
- •2.2. Формули алгебри висловів
- •2.3. Розв'язання «логічних» задач
- •2.4. Застосування алгебри логіки в теорії автоматів. Схеми перемикачів
- •2.5. Логіка першого порядку (логіка предикатів). Загальні поняття
- •2.6. Інтерпретація формул логіки предикатів
- •2.7. Передуюча нормальна форма
- •2.8. Логіка реляційна
- •2.9. Нечітка логіка. Загальні поняття
- •2.10. Нечітка алгебра
- •2.11. Нечітке числення
- •3. Булеві функції. Основні закони алгебри логіки
- •3.1. Цифрові автомати в схемотехніці та програмуванні
- •3.2. Висловлювання, предикати, булеві функції
- •3.3. Схемні реалізації булевих функцій
- •3.4. Найбільш поширені булеві функції
- •3.5. Основні закони алгебри логіки
- •4. Аналітичне подання булевих функцій. Функціонально повні системи булевих функцій
- •4.1. Досконала диз’юнктивна нормальна форма
- •4.2. Досконала кон’юнктивна нормальна форма
- •4.3. Досконала Шефферівська нормальна форма
- •4.4. Досконала Пірсівська нормальна форма
- •4.5. Функціонально повні системи булевих функцій
- •5. Мінімізація булевих функцій
- •5.1. Карти Карно
- •5.2. Мінімальна диз’юнктивна нормальна форма
- •5.3. Мінімальна кон’юнктивна нормальна форма
- •5.4. Мінімальна Шефферівська нормальна форма
- •5.5. Мінімальна Пірсівська нормальна форма
- •6. Абстрактні цифрові автомати
- •6.1. Основні поняття, пов’язані з абстрактними автоматами
- •6.2. Способи задання абстрактних автоматів
- •6.3. Приклади синтезу абстрактних автоматів
- •7. Синтез структурного автомата
- •7.1. Етапи канонічного методу структурного синтезу автоматів
- •7.2. Кодування станів
- •7.3. Побудова канонічної таблиці структурного автомата
- •7.4. Вибір елементів пам’яті автомата
- •7.5. Побудова таблиці збудження тригера
- •7.6. Побудова рівнянь функцій збудження і виходів автомата
- •7.7. Побудова функціональної схеми автомата
- •8. Проектування комбінаційних схем на дешифраторах і мультиплексорах
- •8.1. Синтез схем на дешифраторах
- •8.2. Синтез схем на мультиплексорах
- •9. Синтез мікропрограмного автомата за схемою алгоритму
- •9.1. Послідовність дій, необхідних для побудови управляючого пристрою
- •9.2. Синтез автомата Мілі
- •9.3. Синтез автомата Мура
- •10. Формальні мови і граматики
- •10.1. Визначення формальних мов і граматик
- •10.2. Приклади, що ілюструють первинні поняття
- •10.3. Порожня мова
- •10.4. Типи формальних мов і граматик
- •10.5. Виведення у кв-граматиках і правила побудови дерева виведення
- •10.6. Неоднозначні та еквівалентні граматики
- •10.7. Способи задання схем граматик
- •11. Контекстно-вільні граматики і автомати
- •11.1. Приведені граматики
- •11.2. Виключення ліворекурсивних правил
- •11.3. Виключення ланцюгових правил
- •11.4. Магазинні автомати
- •12. Спадні розпізнавачі
- •12.1. Розділені граматики
- •12.2. Побудова детермінованого спадного розпізнавача
- •12.3. Слаборозділені граматики
- •12.5. Побудова магазинного автомата
- •12.6. Приклади побудови спадного розпізнавача
- •4. Аналітичне подання булевих функцій.
- •8. Проектування комбінаційних схем на
- •9. Синтез мікропрограмного автомата за схемою
- •Теорія цифрових автоматів та формальних мов. Вступний курс
- •6.050101 “Комп’ютерні науки”
12.3. Слаборозділені граматики
Використовуючи введені поняття, можна дати визначення слабо-розділеної граматики.
КВ-граматика називається слаборозділеною, якщо виконуються такі три умови:
- права частина кожного правила являє собою або порожній ланцюжок $, або починається з термінального символу;
- якщо два правила мають однакові ліві частини, то праві частини правил повинні починатися різними символами;
- множина ВИБІР, побудована для правил з однаковою лівою частиною, не містить однакових елементів.
12.4. LL(1)-граматики
Розділені і слаборозділені граматики є підкласом граматик більш загального виду, що називаються LL(1)-граматиками. Граматика називається LL(1)-граматикою за умов:
- права частина кожного правила являє собою або порожній ланцюжок $, або починається з термінального чи нетермінального символу;
- якщо два правила мають однакові ліві частини, то праві частини правил повинні починатися різними символами;
- множина ВИБІР, побудована для правил з однаковою лівою частиною, не містить однакових елементів.
12.5. Побудова магазинного автомата
Для граматик, що відповідають умовам LL(1)-граматик, правдиве наступне твердження: для кожної LL(1)-граматики можна побудувати детермінований магазинний автомат М, що допускає мову, породжувану даною граматикою:
L(Г) = L(М).
Задача побудови магазинного автомата для заданої LL(1)-граматики формулюється таким чином.
Задано граматику Г = {Vт, Va, I, R}, потрібно визначити об'єкти, що визначають автомат М = {P, S, s, F, H, h0, f}.
З огляду на те, що автомат повинен допускати ланцюжки мови, породжуваної заданою граматикою, приймемо P = Vт. Щоб спростити опис автомата, припустимо, що він має один стан s, який є і початковим і заключним, тобто – S = {s} і F = {s}.
Як магазинний алфавіт приймемо таке об'єднання:
H = {Vт Va {h0}}.
Побудову функцій переходів виконаємо з використанням множин ВИБІР правил заданої граматики:
1) Для кожного правила граматики, що починається термінальним символом вигляду A b, побудуємо команду автомата
f(s, b, A) = (s, α'),
де α' є дзеркальним відображенням ланцюжка α.
2) Для кожного правила граматики, що починається нетермінальним символом вигляду A→ Bα побудуємо команду автомата
f*(s, x, A) = (s, Bα'),
де f* – команда автомата без зрушення вхідної головки, α' – дзеркальне відображення ланцюжка α, х – елемент множини ВИБІР. Кількість команд, які необхідно побудувати для заданого правила, визначається числом елементів множини ВИБІР для цього правила. Команди магазинного автомата, що працюють без зрушення вхідної головки, виконують заміну нетермінального символу, який відповідає лівій частині правила, дзеркальним відображенням ланцюжка, який відповідає правій частини цього правила.
3) Для кожного правила граматики, що анулює (A → $), побудуємо команди автомата без зрушення вхідної головки
f*(s, x, A) = (s, $),
де x – елемент множини ВИБІР(A → $). Кількість таких команд визначається числом елементів множини ВИБІР для цього правила.
4) Для кожного термінального символу b, розташованого в середині або на кінці правих частин правил граматики, побудуємо команду
f(s, b, b) = (s0, $).
5) Для переходу в заключний стан побудуємо команду
f*(s, $, h0) = (s0, $, $).
Як початкову конфігурацію автомата умовимося використовувати такий вираз з заданим вхідним ланцюжком µ:
(s, µ, h0I).