English
Related papers

Related papers: Runtime verification in Erlang by using contracts

200 papers

Runtime Verification is a lightweight formal verification technique. It is used to verify at runtime whether the system under analysis behaves as expected. The expected behaviour is usually formally specified by means of properties, which…

Logic in Computer Science · Computer Science 2021-10-26 Angelo Ferrando , Rafael C. Cardoso

We propose a dynamic verification framework for protocols in real-time distributed systems. The framework is based on Scribble, a tool-chain for design and verification of choreographies based on multiparty session types, developed with our…

Distributed, Parallel, and Cluster Computing · Computer Science 2014-08-27 Rumyana Neykova , Laura Bocchi , Nobuko Yoshida

We design monitor optimisations for detectEr, a runtime-verification tool synthesising systems of concurrent monitors from correctness properties for Erlang programs. We implement these optimisations as part of the existing tool and show…

Software Engineering · Computer Science 2015-03-18 Ian Cassar , Adrian Francalanza , Simon Said

Smart contracts are programs running on a blockchain. They are immutable to change, and hence can not be patched for bugs once deployed. Thus it is critical to ensure they are bug-free and well-designed before deployment. A Contract defect…

Software Engineering · Computer Science 2020-04-20 Jiachi Chen , Xin Xia , David Lo , John Grundy , Daniel Xiapu Luo , Ting Chen

Contracts and contract monitoring are a powerful mechanism for specifying properties and guaranteeing them at run time. However, run time monitoring of contracts imposes a significant overhead. The execution time is impacted by the…

Programming Languages · Computer Science 2017-03-31 Matthias Keil , Peter Thiemann

Smart contracts are appealing because they are self-executing business agreements between parties with the predefined and immutable obligations and rights. However, as with all software, smart contracts may contain vulnerabilities because…

Software Engineering · Computer Science 2019-12-10 Weifeng Xu , Glenn A. Fink

A program verifier is a tool that can be used to verify that a "contract" for a program holds - i.e. given a precondition the program guarantees that a given postcondition holds - by only working at the level of the annotated program. An…

Software Engineering · Computer Science 2014-06-12 Gudmund Grov

Smart contracts are Turing-complete programs running on the blockchain. They are immutable and cannot be modified, even when bugs are detected. Therefore, ensuring smart contracts are bug-free and well-designed before deploying them to the…

Software Engineering · Computer Science 2021-03-24 Jiachi Chen , Xin Xia , David Lo , John Grundy , Xiapu Luo , Ting Chen

We present a monitoring approach for verifying systems at runtime. Our approach targets systems whose components communicate with the monitors over unreliable channels, where messages can be delayed or lost. In contrast to prior works,…

Logic in Computer Science · Computer Science 2017-07-19 David Basin , Felix Klaedtke , Eugen Zălinescu

Even though much progress has been made in identifying and mitigating smart contract vulnerabilities, we often hear about coding or design issues leading to great financial losses. This paper presents our progress toward finding defects…

Logic in Computer Science · Computer Science 2024-11-01 Stefan-Claudiu Susan

Tool-assisted refactoring transformations must be trustworthy if programmers are to be confident in applying them on arbitrarily extensive and complex code in order to improve style or efficiency. We propose a simple, high-level but…

Programming Languages · Computer Science 2016-07-11 Dániel Horpácsi , Judit Kőszegi , Simon Thompson

The usage of process choreographies and decentralized Business Process Management Systems has been named as an alternative to centralized business process orchestration. In choreographies, control over a process instance is shared between…

Software Engineering · Computer Science 2017-08-21 Christoph Prybila , Stefan Schulte , Christoph Hochreiner , Ingo Weber

Smart Contracts are programs running logic in the Blockchain network by executing operations through immutable transactions. The Blockchain network validates such transactions, storing them into sequential blocks of which integrity is…

Software Engineering · Computer Science 2024-03-13 Francesco Salzano , Simone Scalabrino , Rocco Oliveto , Remo Pareschi

This paper discusses how model checking, a technique used for the verification of behavioural requirements of dynamic systems, can be usefully deployed for the verification of contracts. A process view of agreements between parties is…

Software Engineering · Computer Science 2007-05-23 Aspassia Daskalopulu

We propose and develop a framework for validating smart contracts derived from e-contracts. The goal is to ensure the generated smart contracts fulfil all the conditions outlined in their corresponding e-contracts. By confirming alignment…

Software Engineering · Computer Science 2025-04-29 Sangharatna Godboley , P. Radha Krishna , Sunkara Sri Harika , Pooja Varnam

Design by Contract (DbC) and runtime enforcement of program assertions enables the construction of more robust software. It also enables the assignment of blame in error reporting. Unfortunately, there is no support for runtime contract…

Software Engineering · Computer Science 2007-05-23 David H. Lorenz , Therapon Skotiniotis

Conformance checking quantifies the deviations between a set of traces in a given process log and a set of possible traces defined by a process model. Current approaches mostly focus on added or missing events. Lately, multi-perspective…

Software Engineering · Computer Science 2020-08-18 Florian Stertz , Juergen Mangler , Stefanie Rinderle-Ma

In operating system development, concurrency poses significant challenges. It is difficult for humans to manually review concurrent behaviors or to write test cases covering all possible executions, often resulting in critical bugs.…

Software Engineering · Computer Science 2025-03-13 Akira Hasegawa , Ryuta Kambe , Toshiaki Aoki , Yuuki Takano

Runtime Monitoring is a lightweight and dynamic verification technique that involves observing the internal operations of a software system and/or its interactions with other external entities, with the aim of determining whether the system…

Logic in Computer Science · Computer Science 2017-08-25 Ian Cassar , Adrian Francalanza , Luca Aceto , Anna Ingólfsdóttir

Smart contracts are central to a myriad of critical blockchain applications, from financial transactions to supply chain management. However, their adoption is hindered by security vulnerabilities that can result in significant financial…

Cryptography and Security · Computer Science 2025-09-30 Dalila Ressi , Alvise Spanò , Lorenzo Benetollo , Carla Piazza , Michele Bugliesi , Sabina Rossi