{"title":"Reasoning About Software","authors":"R. Hale","doi":"10.1109/HOL.1991.596271","DOIUrl":null,"url":null,"abstract":"Although HOL has mostly been used for hardware verification, it is an equally appropriate tool for reasoning about software. Many kinds of programming language semantics (denotational, algebraic, operational, etc.) may be embedded in the HOL logic. Based on these semantics, one can construct tools to support program verification, e.g. using a standard programming logic. Furthermore, by modelling the compilation process in the HOL logac, one can verify that a program’s meaning is in fact preserved when it is compiled and run, thus bridging the gap between hardware and software. The general approach is illustrated for a simple sequential programming language, by describing ats syntax and semantics, its Hoare Logic, and its compilataon.","PeriodicalId":213603,"journal":{"name":"1991., International Workshop on the HOL Theorem Proving System and Its Applications","volume":"22 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1991-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"1991., International Workshop on the HOL Theorem Proving System and Its Applications","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/HOL.1991.596271","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
Abstract
Although HOL has mostly been used for hardware verification, it is an equally appropriate tool for reasoning about software. Many kinds of programming language semantics (denotational, algebraic, operational, etc.) may be embedded in the HOL logic. Based on these semantics, one can construct tools to support program verification, e.g. using a standard programming logic. Furthermore, by modelling the compilation process in the HOL logac, one can verify that a program’s meaning is in fact preserved when it is compiled and run, thus bridging the gap between hardware and software. The general approach is illustrated for a simple sequential programming language, by describing ats syntax and semantics, its Hoare Logic, and its compilataon.