Anti-unification for unranked terms and hedges

We study anti-unification for unranked terms and hedges that may contain term and hedge variables. The anti-unification problem of two hedges -1 and -2 is concerned with finding their generalization, a hedge q such that both -1 and -2 are instances of q under some substitutions. Hedge variables help...

ver descrição completa

Detalhes bibliográficos
Autores: Kutsia, Temur, Levy, Jordi, Villaret i Ausellé, Mateu
Formato: artículo
Estado:Versión publicada
Fecha de publicación:2014
País:España
Recursos:Varias* (Consorci de Biblioteques Universitáries de Catalunya, Centre de Serveis Científics i Acadèmics de Catalunya)
Repositorio:Recercat. Dipósit de la Recerca de Catalunya
OAI Identifier:oai:recercat.cat:10256/14444
Acesso em linha:http://hdl.handle.net/10256/14444
Access Level:acceso abierto
Palavra-chave:Algorismes computacionals
Computer algorithms
Lògica matemàtica
Logic, Symbolic and mathematical
Complexitat computacional
Computational complexity
Descrição
Resumo:We study anti-unification for unranked terms and hedges that may contain term and hedge variables. The anti-unification problem of two hedges -1 and -2 is concerned with finding their generalization, a hedge q such that both -1 and -2 are instances of q under some substitutions. Hedge variables help to fill in gaps in generalizations, while term variables abstract single (sub)terms with different top function symbols. First, we design a complete and minimal algorithm to compute least general generalizations. Then, we improve the efficiency of the algorithm by restricting possible alternatives permitted in the generalizations. The restrictions are imposed with the help of a rigidity function, which is a parameter in the improved algorithm and selects certain common subsequences from the hedges to be generalized. The obtained rigid anti-unification algorithm is further made more precise by permitting combination of hedge and term variables in generalizations. Finally, we indicate a possible application of the algorithm in software engineering