{"title":"使用两种基于符号执行的方法来正式验证Ada任务程序的经验","authors":"L. Dillon, R. Kemmerer, L. J. Harrison","doi":"10.1109/WST.1988.5363","DOIUrl":null,"url":null,"abstract":"Two different approaches that use symbolic execution were used to prove partial correctness and general safety properties of Ada programs. One approach is based on interleaving the task components while the other is based on verifying the tasks in isolation and then performing cooperation proofs. Both approaches extend past efforts by incorporating tasking proof rules into the symbolic executor, allowing Ada programs with tasking to be formally verified. The limitations of each approach are presented, along with each approach's advantages and disadvantages. In particular, the difficulty of dealing with communication statements in a loop structure is addressed in detail.<<ETX>>","PeriodicalId":269073,"journal":{"name":"[1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis","volume":"28 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1988-07-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"18","resultStr":"{\"title\":\"An experience with two symbolic execution-based approaches to formal verification of Ada tasking programs\",\"authors\":\"L. Dillon, R. Kemmerer, L. J. Harrison\",\"doi\":\"10.1109/WST.1988.5363\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Two different approaches that use symbolic execution were used to prove partial correctness and general safety properties of Ada programs. One approach is based on interleaving the task components while the other is based on verifying the tasks in isolation and then performing cooperation proofs. Both approaches extend past efforts by incorporating tasking proof rules into the symbolic executor, allowing Ada programs with tasking to be formally verified. The limitations of each approach are presented, along with each approach's advantages and disadvantages. In particular, the difficulty of dealing with communication statements in a loop structure is addressed in detail.<<ETX>>\",\"PeriodicalId\":269073,\"journal\":{\"name\":\"[1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis\",\"volume\":\"28 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1988-07-19\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"18\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"[1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/WST.1988.5363\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"[1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/WST.1988.5363","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
An experience with two symbolic execution-based approaches to formal verification of Ada tasking programs
Two different approaches that use symbolic execution were used to prove partial correctness and general safety properties of Ada programs. One approach is based on interleaving the task components while the other is based on verifying the tasks in isolation and then performing cooperation proofs. Both approaches extend past efforts by incorporating tasking proof rules into the symbolic executor, allowing Ada programs with tasking to be formally verified. The limitations of each approach are presented, along with each approach's advantages and disadvantages. In particular, the difficulty of dealing with communication statements in a loop structure is addressed in detail.<>