
- •М. С. Нікітченко теорія програмування Частина 1
- •1. Формалізація простої мови програмування
- •1.1. Неформальний опис простої мови програмування
- •1.2. Формальний опис синтаксису мови sipl
- •1.3. Формальний опис семантики мови sipl
- •1.3.2. Функції
- •1.3.3. Композиції
- •1.3.4. Програмні алгебри
- •1.3.5. Визначення семантичних термів
- •1.3.6. Побудова семантичного терму програми
- •1.3.7. Обчислення значень семантичних термів
- •1.3.8. Загальна схема формалізації мови sipl
- •1.4. Властивості програмної алгебри
- •2. Розвиток основних понять програмування
- •2.1. Аналіз словникових визначень поняття програми
- •2.2. Розвиток поняття програми з гносеологічної точки зору
- •2.3. Розвиток основних понять програмування
- •2.3.1 Початкова тріада понять програмування
- •2.3.2. Тріада прагматичності програм
- •2.3.3. Тріада основних понять програмування
- •2.3.4. Пентада основних понять програмування
- •2.4. Розвиток основних програмних понять
- •2.4.1. Тріада основних програмних понять
- •Малюнок 2.7. Програма як діалектичне заперечення проблеми
- •2.4.2. Пентада основних програмних понять
- •2.5. Сутнісні та семіотичні аспекти програм
- •2.6. Програми і мови
- •2.7. Пентада програмних понять процесного типу
- •3. Формалізація програмних понять
- •3.1. Теоретико-функціональна формалізація
- •3.2. Класи функцій
- •3.3. Програмні системи
- •3.4. Рівні конкретизації програмних систем
- •4. Синтактика: формальні мови та граматики
- •4.1. Розвиток понять формальної мови та породжуючої граматики
- •4.2. Визначення основних понять формальних мов
- •4.3. Операції над формальними мовами
- •4.4. Породжуючі граматики
- •4.5. Приклад породжуючої граматики та її властивості
- •4.6. Ієрархія граматик Хомського
- •4.7. Автоматні формалізми сприйняття мов
- •4.7.1. Машини Тьюрінга
- •4.7.2. Еквівалентність машин Тьюрінга та породжуючих граматик
- •4.7.3. Лінійно-обмежені автомати
- •4.7.4. Магазинні автомати
- •4.7.5. Скінченні автомати
- •4.8. Методи подання синтаксису мов програмування
- •4.8.1. Нормальні форми Бекуса–Наура
- •4.8.2. Модифіковані нормальні форми Бекуса–Наура
- •4.8.3. Синтаксичні діаграми
- •4.9. Властивості контекстно-вільних граматик
- •4.9.1. Видалення несуттєвих символів
- •4.9.2. Видалення -правил
- •4.9.3. Нормальна форма Хомського
- •4.9.4. Нормальна форма Грейбах
- •4.9.5. Рекурсивні нетермінали
- •4.10. Властивості контекстно-вільних мов
- •4.11. Операції над формальними мовами
- •4.12. Дерева виводу
- •4.13. Однозначні та неоднозначні граматики
- •4.14. Розв’язні та нерозв’язні проблеми кв-граматик та мов
- •4.15. Рівняння в алгебрах формальних мов
- •5. Теорія рекурсії (теорія найменшої нерухомої точки)
- •5.1. Рекурсивні визначення та рекурсивні рівняння
- •5.2. Частково впорядковані множини, границі ланцюгів та -області
- •5.3. Неперервні відображення
- •5.4. Теореми про нерухомі точки
- •5.5. Конструювання похідних -областей
- •5.6 Властивості оператора найменшої нерухомої точки
- •5.7. Застосування теорії ннт
- •5.7.1. Уточнення синтаксису мов програмування
- •5.7.2. Семантика мов програмування
- •5.7.3. Рекурсивні розширення мови sipl
5.3. Неперервні відображення
Центральним поняттям теорії рекурсії є поняття неперервного відображення. На відміну від визначення неперервності за Коші (- визначення) будемо користуватися більш абстрактним визначенням неперервності за Гейне.
Визначення
5.6.
Відображення
:
D
D,
задане на
ЧВМ
,
– неперервне
за Гейне, якщо для будь-якого ланцюга
з D
виконується рівність
.
Зауваження
5.4.
Поняття
неперервного відображення узагальнюється
для відображень типу :
DR,
(де (D,
D)
та (R,
R)
– ЧВМ) наступним чином. Нехай
–
ланцюг в D.
Тоді
– неперервне, якщо
.
Визначення 5.7. Відображення : D D – монотонне, якщо
.
Неперервні відображення є монотонними.
Лема 5.1. Нехай – ЧВМ та :DD – неперервне відображення, тоді – монотонне.
Доведення
Нехай
є ланцюг
,
всі елементи якого, крім d0,
дорівнюють d1.
Тоді з визначення ланцюга та неперервності
випливає, що
Оскільки
,
то
.
Це означає, що
є мажорантою
.
Тому
.▄
5.4. Теореми про нерухомі точки
Центральною теоремою є наступна теорема, яка стверджує наявність найменшого розв’язку рекурсивного рівняння, який може бути знайдений методом послідовних наближень. Цю теорему відносять до розряду фольклорних («народних») теорем, тобто її формулювання всі знають, але першого автора назвати важко. Як правило, до перших авторів відносять Кнастера, Тарського та Кліні. Важливість теореми пов’язана з широким колом її застувань.
Теорема 5.1 (Кнастер-Тарський-Кліні)
Нехай
D
– ω-область,
:DD
– неперервне відображення, задане на
цій області. Тоді існує найменша нерухома
точка
,
яка позначається
та для якої справедлива наступна формула:
|
(КТК) |
де
,
,
i.
Доведення теореми складається з трьох тверджень:
Доведення факту, що множина {
} i є ланцюг (тому її супремум
існує).
Доведення того, що є нерухомою точкою φ.
Доведення, що є найменшою з нерухомих точок φ.
Почнемо
з першого твердження. Розглянемо
послідовність
.
Доведемо методом математичної індукції, що це – ланцюг.
База
індукції.
Оскільки
– найменший елемент D,
то
.
Індуктивний
крок. Треба
довести, що з
випливає
.
Дійсно, за монотонністю φ
маємо
.
Отже – ланцюг.
Перейдемо до другого твердження. За неперервністю :
.
Остання рівність випливає з того, що , а найменший елемент не впливає на супремум. Отже, – нерухома точка φ.
Доведемо тепер останнє твердження, що – найменша нерухома точка (ННТ).
Нехай
b також
нерухома точка, тобто
.
Маємо, що
.
За монотонністю φ
.
Аналогічно,
для всіх i.
Тому
.
Отже,
– найменша з нерухомих точок.
▄
Теорема 5.2 (структура множини нерухомих точок)
Нехай
D
–
-область,
– неперервне відображення на D.
Тоді множина нерухомих точок Y=
–
-область.
Доведення
Доведемо, що виконуються три умови визначення -області.
1.
Частковий порядок на множині нерухомих
точок отримуємо як звуження часткового
порядку на D:
.
2.
Найменшим елементом в Y
є елемент
(за теоремою Кнастера-Тарського-Кліні).
3.
Доведемо повноту. Розглянемо ланцюг
елементів Y.
Покажемо, що границя ланцюга є нерухомою
точкою, тобто
.
Дійсно,
.
Тобто
–
нерухома точка.
▄
Перш ніж рухатися далі у вивченні властивостей оператора найменшої нерухомої точки, доведемо важливу лему.
Лема
5.2 Якщо множина
D
впорядкована за обома індексами, тобто
ij
(dijdi(j+1)&
dijd(i+1)j),
то
=
.
Доведення
Попередньо
необхідно показати, що множини, які
розглядаються під супремумами, є
ланцюгами (тобто {
}j,
{
}j,
{
}
k
– ланцюги).
Це випливає з вибору множини
.
Метод доведення леми полягає в тому, що ми покажемо, що множини мажорант усіх ланцюгів співпадають. Звідси буде випливати рівність границь (бо вони є найменшими з мажорант).
Нехай
– мажоранта
ланцюга {
}j.
Звідси
– мажоранта
для всіх
та для всіх
,
а отже
– мажоранта
для
для
всіх
,
тобто
– мажоранта
для ланцюга {
}j.
Аналогічно
– мажоранта
для ланцюга {
}
k.
Залишилося продемонструвати, що якщо – мажоранта для { } k, то – мажоранта для { }j. Дійсно, для будь якого елемента dij існує k (зокрема, k=max(i, j)), що dij dkk. Тому – мажоранта для { }j. ▄