{"title":"Formal program reversing by conditioned slicing","authors":"G. Villavicencio","doi":"10.1109/CSMR.2003.1192446","DOIUrl":null,"url":null,"abstract":"In (Oliveira and Villavicencio, 2001) we have applied [P]=([P/sub 1/], ..., [P/sub n/]) as a conjuncture to reverse calculate the formal specifications of a program P through the application of static slicing on output variables. This conjecture defines a calculation pattern: the formal specification for each slice is calculated and the whole program specification is obtained by combining the slice specifications by the split (<...>) combinator. However, the conjecture fails when we use conditioned slices as a complexity-reduction mechanism. Thus, it is necessary to define a new calculation pattern for the conditioned slices. Since we need to reconstruct the static slice on an output variable combining the conditioned slices on such variable, \"transversal calculus\" is required instead of a \"linear calculation\" as in (Oliveira and Villavicencio, 2001). The definition of the calculus patterns is important when facing the construction of the automatic support for the present approach because they contribute to the systematization of the calculus process.","PeriodicalId":236632,"journal":{"name":"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.","volume":"41 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2003-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CSMR.2003.1192446","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3
Abstract
In (Oliveira and Villavicencio, 2001) we have applied [P]=([P/sub 1/], ..., [P/sub n/]) as a conjuncture to reverse calculate the formal specifications of a program P through the application of static slicing on output variables. This conjecture defines a calculation pattern: the formal specification for each slice is calculated and the whole program specification is obtained by combining the slice specifications by the split (<...>) combinator. However, the conjecture fails when we use conditioned slices as a complexity-reduction mechanism. Thus, it is necessary to define a new calculation pattern for the conditioned slices. Since we need to reconstruct the static slice on an output variable combining the conditioned slices on such variable, "transversal calculus" is required instead of a "linear calculation" as in (Oliveira and Villavicencio, 2001). The definition of the calculus patterns is important when facing the construction of the automatic support for the present approach because they contribute to the systematization of the calculus process.