dc.creatorMolina, Facundo Joaquín
dc.creatorCornejo, César Mauricio
dc.creatorDegiovanni, Renzo
dc.creatorRegis, Germán
dc.creatorCastro, Pablo Francisco
dc.creatorAguirre, Nazareno Matias
dc.creatorFrias, Marcelo Fabian
dc.date.accessioned2021-03-11T15:40:44Z
dc.date.accessioned2022-10-15T15:47:26Z
dc.date.available2021-03-11T15:40:44Z
dc.date.available2022-10-15T15:47:26Z
dc.date.created2021-03-11T15:40:44Z
dc.date.issued2019-05
dc.identifierMolina, Facundo Joaquín; Cornejo, César Mauricio; Degiovanni, Renzo; Regis, Germán; Castro, Pablo Francisco; et al.; An evolutionary approach to translating operational specifications into declarative specifications; Elsevier Science; Science of Computer Programming; 181; 5-2019; 47-63
dc.identifier0167-6423
dc.identifierhttp://hdl.handle.net/11336/128086
dc.identifierCONICET Digital
dc.identifierCONICET
dc.identifier.urihttps://repositorioslatinoamericanos.uchile.cl/handle/2250/4404925
dc.description.abstractVarious tools for program analysis, including run-time assertion checkers and static analyzers such as verification and test generation tools, require formal specifications of the programs being analyzed. Moreover, many of these tools and techniques require such specifications to be written in a particular style, or follow certain patterns, in order to obtain an acceptable performance from the corresponding analyses. Thus, having a formal specification sometimes is not enough for using a particular technique, since such specification may not be provided in the right formalism. In this paper, we deal with this problem in the increasingly common case of having an operational specification, while for analysis reasons requiring a declarative specification. We propose an evolutionary approach to translate an operational specification written in a sequential programming language, into a declarative specification, in relational logic. We perform experiments on a benchmark of data structure implementations, for which operational invariants are available, and show that our evolutionary computation based approach to translating specifications achieves very good precision in this context, and produces declarative specifications that are more amenable to analyses that demand specifications in this style. This is assessed in two contexts: bounded verification of data structure invariant preservation, and instance enumeration using symbolic execution aided by tight bounds.
dc.languageeng
dc.publisherElsevier Science
dc.relationinfo:eu-repo/semantics/altIdentifier/url/https://linkinghub.elsevier.com/retrieve/pii/S0167642319300735
dc.relationinfo:eu-repo/semantics/altIdentifier/doi/http://dx.doi.org/10.1016/j.scico.2019.05.006
dc.rightshttps://creativecommons.org/licenses/by-nc-sa/2.5/ar/
dc.rightsinfo:eu-repo/semantics/restrictedAccess
dc.subjectEVOLUTIONARY ALGORITHMS
dc.subjectPROGRAM ANALYSIS
dc.subjectPROGRAM SPECIFICATION
dc.subjectRELATIONAL LOGIC
dc.titleAn evolutionary approach to translating operational specifications into declarative specifications
dc.typeinfo:eu-repo/semantics/article
dc.typeinfo:ar-repo/semantics/artículo
dc.typeinfo:eu-repo/semantics/publishedVersion


Este ítem pertenece a la siguiente institución