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...

Descripción completa

Detalles Bibliográficos
Autores: Galán Morillo, Francisco José, Cañete Valdeón, José Miguel
Tipo de recurso: informe técnico
Estado:Versión publicada
Fecha de publicación:2004
País:España
Institución:Universidad de Sevilla (US)
Repositorio:idUS. Depósito de Investigación de la Universidad de Sevilla
OAI Identifier:oai:idus.us.es:11441/128738
Acceso en línea:https://hdl.handle.net/11441/128738
Access Level:acceso abierto
Palabra clave:Assertion
Automatic testing
Correctness
Definite logic program
Formal specification
Synthesis
Transformation
Descripción
Sumario: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.