错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Checking Contracts in Event-B

  • Dominique Méry

摘要

Verification of program properties such as partial correctness (PC) or absence of errors at runtime (RTE) applies induction principles using algorithmic techniques for checking statements in a logical framework such as classical logic or temporal logic. Alan Turing was undoubtedly the first to annotate programs, namely Turing machines, and to apply an induction principle to transition systems. Our work is placed in this perspective of verifying safety properties of programs which could be executed sequentially or in a distributed manner, with the aim of presenting them as simply as possible to student classes in the context of a posteriori verification. We report on an in vivo experiment using the Event-B language and associated tools as an assembly and disassembly platform for correcting programs in a programming language. We have adopted a contract-based approach to programming, which we are implementing with Event-B. A few examples are given to illustrate this pedagogical approach as well as comments and observations. This step is part of a process of learning both the underlying techniques and other tools such as Frama-C based on the same ideas.