Програмування: відмінності між версіями

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