Полипрограммы и бисимуляция полипрограмм


https://doi.org/10.18255/1818-1015-2018-5-534-548

Полный текст:


Аннотация

Полипрограмма — это обобщение программы, допускающее множественность определений одной и той же функции. Подобные объекты возникают в различных системах преобразования программ, таких как система Бёрстолла–Дарлингтона и насыщение равенствами. В данной работе мы вводим понятие полипрограммы на нестрогом функциональном языке первого порядка. Мы определяем денотационную семантику полипрограмм и описываем некоторые преобразования полипрограмм в двух разных стилях: в стиле системы Бёрстолла–Дарлингтона и в стиле насыщения равенствами. Преобразования в стиле насыщения равенствами осуществляются над полипрограммами в расчленённой форме, в которой стирается грань между функциями и выражениями и между подстановкой и раскрытием вызова функции. Расчленённые полипрограммы хорошо подходят для реализации и проведения рассуждений, но трудны для человеческого восприятия. Мы также вводим понятие бисимуляции полипрограмм, на котором основано преобразование — слияние по бисимуляции, соответствующее доказательству эквивалентности функций по индукции или коиндукции. Бисимуляция полипрограмм — понятие, вдохновлённое понятием бисимуляции размеченных систем переходов, но несколько от него отличающееся, поскольку бисимуляция полипрограмм рассматривает каждое определение как самодостаточное, т.е. функция полипрограммы задаётся любым своим определением, в то время как в размеченной системе переходов поведение системы в состоянии определяется всей совокупностью переходов, которые можно осуществить из этого состояния. Мы предлагаем алгоритм перечисления бисимуляций некоторого определённого вида. Алгоритм состоит из двух фаз: перечисление пребисимуляций и преобразование их в бисимуляции. Такое разделение требуется из-за того, что бисимуляции полипрограмм учитывают возможность перестановки параметров функций. Мы доказываем корректность данного алгоритма, а также формулируем некоторую слабую форму его полноты. Статья публикуется в авторской редакции.


Об авторе

Сергей Александрович Гречаник
Институт прикладной математики им. М.В. Келдыша РАН.
Россия

канд. физ.-мат. наук. 

Москва.



Список литературы

1. Abel A., Altenkrich T., “A predicative analysis of structural recursion”, Journal of Functional Programming, 12:1 (2002), 1-41.

2. Ariola Z. M., Klop J. W., Plump D., “Bisimilarity in Term Graph Rewriting”, Information and Computation, 156 (2000), 2-24.

3. Burstall R. M., Darlington J., “A transformation system for developing recursive programs”, Journal of the ACM, 24:1 (1977), 44-67.

4. Emelyanov P., “Analysis of equality relationships for imperative programs”, CoRR, 2006, https://arxiv.org/abs/cs/0609092.

5. Grechanik S., “Inductive prover based on equality saturation (extended version)”, Proceedings of the Fourth International Valentin Turchin Workshop on Metacomputation, 2014, 26-53.

6. Nelson G., Oppen D.C., “Fast decision procedures based on congruence closure”, Journal of the ACM, 27:2 (1980), 356-364.

7. Sands D., “Total correctness by local improvement in the transformation of functional programs”, ACM TOPLAS, 18:2 (1996), 175-234.

8. Tate R., Stepp M., Tatlock Z., Lerner S., “Equality saturation: a new approach to optimization”, SIGPlAn Not., 44:1 (2009), 264-276.

9. Turchin V., “The concept of a supercompiler”, ACM TOPLAS, 8:3 (1986), 292-325.

10. Scott D.S., “Domains for Denotational Semantics”, Automata, Languages, and Programming: 9th Colloquium Aarhus, Denmark, Lecture Notes in Computer Science, 140, 1982, 577-610.

11. Klyuchnikov I., Romanenko S., “Towards Higher-Level Supercompilation”, Proceedings of the Second International Workshop on Metacomputation in Russia, 2010, 82-101.


Дополнительные файлы

Для цитирования: Гречаник С.А. Полипрограммы и бисимуляция полипрограмм. Моделирование и анализ информационных систем. 2018;25(5):534–548. https://doi.org/10.18255/1818-1015-2018-5-534-548

For citation: Grechanik S. Polyprograms and Polyprogram Bisimulation. Modeling and Analysis of Information Systems. 2018;25(5):534–548. https://doi.org/10.18255/1818-1015-2018-5-534-548

Просмотров: 109

Обратные ссылки

  • Обратные ссылки не определены.


Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 1818-1015 (Print)
ISSN 2313-5417 (Online)