Abstract

To unify a pair of algebraic expressions t1 and t2 is to find out such a substitution θ that both terms t1θ and t2θ have the same meaning. Unification problem can be extended to computational programs. To unify a pair of programs π1 and π2 is to build two sequences of assignment statements ρ1 : x1 := t1; x2 := t2; … xn := tn and ρ1 : y1 := s1; y2 := s2; … ym := sm, such that both compositions of programs ρ1;π1 and ρ2;π2 are equivalent (i.e. they compute the same function). In this paper we deal with logic-and-term equivalence introduced in 1972 by V. Itkin. This is the most weak decidable equivalence on programs that approximates the functional equivalence. Based on the polynomial-time equivalence checking algorithm for logic-and-term equivalence in the firstorder model of imperative programs we introduce a polynomial-time unification algorithm which computes the most general unifier (ρ1, ρ2) for every pair of sequential imperative (π1, π2) w.r.t. logic-and-term equivalence. After discussing the importance of unification proble for program refactoring and optimization we briefly recall the basic concepts of term substitution theory and theory of program schemata. Then we introduce a formal model of sequential programs we deal with, and finally we present our unification algorithm, prove its correctness and show that its complexity is polynomial on the size of programs to be unified.

Highlights

  • ВведениеЗадача унификации выражений (формул, атомов, термов) языка предикатов первого порядка состоит в том, чтобы для заданной пары выражений

  • Задача семантической унификации исследовалась для алгебраических операций, подчиняющихся законам ассоциативности и коммутативности [5,6,7]

  • Unification problem can be extended to computational programs

Read more

Summary

Введение

Задача унификации выражений (формул, атомов, термов) языка предикатов первого порядка состоит в том, чтобы для заданной пары выражений. Тогда задача семантической унификации состоит в том, чтобы для заданной пары термов E1 и E2 отыскать такую подстановку , для которой термы E2 и E1. Одно из возможных определений клона можно сформулировать на основе отношения унифицируемости: клоном называется совокупность фрагментов программы 0 , 1, , n , обладающая следующим свойством – любая пара программ 0 , i , 1 i n, унифицируема, причем унифицирующими интерфейсами служат такие пары программ В то же время, для эффективного решения задачи унификации необходимо, чтобы это выбранное отношение эквивалентности было разрешимым. В статье [14] показано, что проверку л-т эквивалентности программ можно провести за время, полиномиально зависящее от размеров программ. Мы покажем, что для одного класса интерфейсов-унификаторов задачу л-т унификации императивных программ также можно решить за полиномиальное время. В заключение обсуждаются перспективы дальнейшего развития предложенного нами метода для решения более общих случаев проблемы унификации программ

Алгебра конечных подстановок
Модель последовательных программ императивных
Алгоритм логико-термальной программ унификации
Сложность логико-термальной программ унификации
Заключение
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call