Executing Assertions via Synthesized Logic Programs

Programming with assertions constitutes an effective tool to detect and correct programming errors. The ability of executing for- mal specifications is essential in order to test automatically an imple mentation against its assertions. However, formal assertions may de scribe recursive models which...

ver descrição completa

Detalhes bibliográficos
Autores: Galán Morillo, Francisco José, Cañete Valdeón, José Miguel
Formato: informe técnico
Estado:Versión publicada
Fecha de publicación:2004
País:España
Recursos:Universidad de Sevilla (US)
Repositorio:idUS. Depósito de Investigación de la Universidad de Sevilla
OAI Identifier:oai:idus.us.es:11441/128738
Acesso em linha:https://hdl.handle.net/11441/128738
Access Level:acceso abierto
Palavra-chave:Assertion
Automatic testing
Correctness
Definite logic program
Formal specification
Synthesis
Transformation
Descrição
Resumo:Programming with assertions constitutes an effective tool to detect and correct programming errors. The ability of executing for- mal specifications is essential in order to test automatically an imple mentation against its assertions. However, formal assertions may de scribe recursive models which are di±cult to identify so current assertion checkers limit, in a considerable way, the expressivity of the assertion language. In this paper, we are interested in showing how transforma- tional synthesis can help to execute \expressive" assertions r of the form 8¹x(r(¹x) , Q¹yR(¹x; ¹y)) where Q is either an existential or universal quan- tifier and R a quantifier free formula in the language of a formal theory C we call assertion context. This sort of theories is interesting because it presents a balance between expressiveness for writing assertions and existence of effective methods for compiling and executing them.