Teaching Design by Contract using Snap!

07/12/2021
by   Marieke Huisman, et al.
0

With the progress in deductive program verification research, new tools and techniques have become available to support design-by-contract reasoning about non-trivial programs written in widely-used programming languages. However, deductive program verification remains an activity for experts, with ample experience in programming, specification and verification. We would like to change this situation, by developing program verification techniques that are available to a larger audience. In this paper, we present how we developed prototypal program verification support for Snap!. Snap! is a visual programming language, aiming in particular at high school students. We added specification language constructs in a similar visual style, designed to make the intended semantics clear from the look and feel of the specification constructs. We provide support both for static and dynamic verification of Snap! programs. Special attention is given to the error messaging, to make this as intuitive as possible.

READ FULL TEXT

page 2

page 3

page 4

research
06/28/2021

Verification of a Smart Contract for a Simple Casino

We describe the verification of an existing smart contract for a simple ...
research
10/11/2021

Robust Safety for Move

A program that maintains key safety properties even when interacting wit...
research
09/20/2022

A Tool for Describing and Checking Natural Semantics Definitions of Programming Languages

Many universities have courses and projects revolving around compiler or...
research
10/06/2017

Fibred Computational Effects

Dependent types provide a lightweight and modular means to integrate pro...
research
12/03/2019

A Formal Approach to the Engineering of Domain-Specific Distributed Systems

We review some results regarding specification, programming and verifica...
research
12/28/2022

Verification of C++ Programs with VeriFast

VeriFast is a prototype tool based on separation logic for modular verif...
research
04/09/2023

Dependently Typing R Vectors, Arrays, and Matrices

The R programming language is widely used in large-scale data analyses. ...

Please sign up or login with your details

Forgot password? Click here to reset