{"title":"Reasoning About Programs","authors":"G. Hutton","doi":"10.1145/3568325.3568330","DOIUrl":null,"url":null,"abstract":"using words, pictures and mathematical formulae, and verification is often carried out empirically, perhaps on a model of the real product. The underly ing mathematical and physical theories from which the specification notation and design principles are derived (e.g., structural design principles for bridge design) constitute a major part of the study in the associated discipline. Verification and analysis are especially important for computer programs because they tend to be some of the most complex artifacts designed by humans. A car manufacturer demands assurance about the quality of the software control ling its cars and its real-time response. Authorities demand a much greater level of assurance for the software controlling a nuclear power plant and for commer cial aviation because the cost of error in logic or performance is astronomical. The software controlling the Mars rover Curiosity, for instance, must never fail1 because there are very few options for human controllers on earth to overcome a major soft ware problem. In fact, our society has come to rely on computer programs to such an extent that faulty software may be the most expensive aspect of any engineering design. Testing a design is a time-honored way of gaining confidence in the eventual product. Testing is used extensively in all engineering disciplines. Physical testing Reasoning About Programs","PeriodicalId":302246,"journal":{"name":"Effective Theories in Programming Practice","volume":"49 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Effective Theories in Programming Practice","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3568325.3568330","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
using words, pictures and mathematical formulae, and verification is often carried out empirically, perhaps on a model of the real product. The underly ing mathematical and physical theories from which the specification notation and design principles are derived (e.g., structural design principles for bridge design) constitute a major part of the study in the associated discipline. Verification and analysis are especially important for computer programs because they tend to be some of the most complex artifacts designed by humans. A car manufacturer demands assurance about the quality of the software control ling its cars and its real-time response. Authorities demand a much greater level of assurance for the software controlling a nuclear power plant and for commer cial aviation because the cost of error in logic or performance is astronomical. The software controlling the Mars rover Curiosity, for instance, must never fail1 because there are very few options for human controllers on earth to overcome a major soft ware problem. In fact, our society has come to rely on computer programs to such an extent that faulty software may be the most expensive aspect of any engineering design. Testing a design is a time-honored way of gaining confidence in the eventual product. Testing is used extensively in all engineering disciplines. Physical testing Reasoning About Programs