Context Generation from Formal Specifications for C Analysis Tools

09/05/2017
by   Michele Alberti, et al.
0

Analysis tools like abstract interpreters, symbolic execution tools and testing tools usually require a proper context to give useful results when analyzing a particular function. Such a context initializes the function parameters and global variables to comply with function requirements. However it may be error-prone to write it by hand: the handwritten context might contain bugs or not match the intended specification. A more robust approach is to specify the context in a dedicated specification language, and hold the analysis tools to support it properly. This may mean to put significant development efforts for enhancing the tools, something that is often not feasible if ever possible. This paper presents a way to systematically generate such a context from a formal specification of a C function. This is applied to a subset of the ACSL specification language in order to generate suitable contexts for the abstract interpretation-based value analysis plug-ins of Frama-C, a framework for analysis of code written in C. The idea here presented has been implemented in a new Frama-C plug-in which is currently in use in an operational industrial setting.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/05/2020

Patterns for Name Analysis and Type Analysis with JastAdd

In the last two decades, tools have been implemented to more formally sp...
research
01/08/2019

StaBL - State Based Language for Specification of Web Applications

Context and motivation: Usage of Formal Specification languages is scarc...
research
04/04/2018

P4K: A Formal Semantics of P4 and Applications

Programmable packet processors and P4 as a programming language for such...
research
02/06/2023

Leveraging TLA+ Specifications to Improve the Reliability of the ZooKeeper Coordination Service

ZooKeeper is a coordination service, widely used as a backbone of variou...
research
08/16/2022

What Your Firmware Tells You Is Not How You Should Emulate It: A Specification-Guided Approach for Firmware Emulation

Emulating firmware of microcontrollers is challenging due to the lack of...
research
04/01/2021

A Multipurpose Formal RISC-V Specification

RISC-V is a relatively new, open instruction set architecture with a mat...
research
09/28/2018

Formal Context Generation using Dirichlet Distributions

We suggest an improved way to randomly generate formal contexts based on...

Please sign up or login with your details

Forgot password? Click here to reset