{"title":"Dynamically detecting relevant program invariants","authors":"D. Notkin","doi":"10.1109/ICECCS.2000.873940","DOIUrl":null,"url":null,"abstract":"Explicitly stated program invariants can help programmers by characterizing certain aspects of program execution and identifying program properties that must be preserved when modifying code. In practice, these invariants are usually absent from code. An alternative to expecting programmers to annotate code with invariants is to automatically infer invariants from the program itself. This talk describes dynamic techniques for discovering invariants from execution traces; the essential idea is to look for patterns in and relationships among variable values over a set of executions. An implementation has indicated that the approach is both effective -- successfully rediscovering formal specifications -- and useful --discovering invariants that assisted a software evolution task. The talk will also discuss, both in terms of invariant detection and also in more general terms, issues related to the potential synergy between static and dynamic analysis techniques.","PeriodicalId":228728,"journal":{"name":"Proceedings Sixth IEEE International Conference on Engineering of Complex Computer Systems. ICECCS 2000","volume":"77 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2000-09-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings Sixth IEEE International Conference on Engineering of Complex Computer Systems. ICECCS 2000","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICECCS.2000.873940","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Explicitly stated program invariants can help programmers by characterizing certain aspects of program execution and identifying program properties that must be preserved when modifying code. In practice, these invariants are usually absent from code. An alternative to expecting programmers to annotate code with invariants is to automatically infer invariants from the program itself. This talk describes dynamic techniques for discovering invariants from execution traces; the essential idea is to look for patterns in and relationships among variable values over a set of executions. An implementation has indicated that the approach is both effective -- successfully rediscovering formal specifications -- and useful --discovering invariants that assisted a software evolution task. The talk will also discuss, both in terms of invariant detection and also in more general terms, issues related to the potential synergy between static and dynamic analysis techniques.