Програмування: відмінності між версіями
[неперевірена версія] | [перевірена версія] |
Вилучено вміст Додано вміст
Вікіфікація |
вікіфікація |
||
Рядок 27:
* '''Детальний'''/'''Фізичний''' (кодування): Реалізація окремих функцій з використанням конструкцій і операторів мови програмування, друкування тексту програми на клавіатурі.
=== Суперкомпіляція
{{falseredirect|Суперкомпіляція|дата=лютий 2021}}
[[Суперкомпіляція]] — метод аналізу й перетворення програм на основі наступних дій:<ref>{{Cite book▼
|title=Анд. В. Климов, С.А.Романенко - Суперкомпиляция: основные принципы и базовые понятия.
|last=
Рядок 47 ⟶ 49:
|language=
|isbn=
}}</ref>
▲Суперкомпіляція — метод аналізу й перетворення програм на основі наступних дій:
* Робиться спроба «виконати» програму не для конкретних вхідних даних, а «символічно» у «загальному» вгляді, тобто для довільних вхідних даних. Для цього будується «дерево процесів».
* Якщо початкова програма містить цикли та/або рекурсію, то дерево процесів є нескінченним. У цьому випадку робиться спроба згорнути нескінченне дерево у скінченний «граф конфігурацій». Для цього конфігурації порівнюються між собою.
* Побудований скінченний граф конфіругацій перетворюється в «залишкову» програму.
'''Спеціалізація програм.''' Нехай <math>\Pi</math> — програма, <math>C</math> — обмеження на умови експлутації <math>\Pi</math>. Тоді на вхід спеціалізатора подається <math>(\Pi,C)</math>, а задача спеціалізатора — породити залишкову програму <math>\Pi',</math> яка повинна задовільняти наступним умовам
|