Skip to content
Snippets Groups Projects
Commit 1d46732a authored by Julien Signoles's avatar Julien Signoles
Browse files

[E-ACSL] manual

parent b51175ee
No related branches found
No related tags found
No related merge requests found
...@@ -130,3 +130,15 @@ ...@@ -130,3 +130,15 @@
note = {Submitted for publication}, note = {Submitted for publication},
} }
@inproceedings{pathcrawler,
author = {Bernard Botella and Mickal Delahaye and Stphane
Hong-Tuan-Ha and Nikolai Kosmatov and Patricia Mouy
and Muriel Roger and Nicky Williams},
title = {Automating Structural Testing of {C} Programs:
Experience with {PathCrawler}},
booktitle = {the 4th Int. Workshop on Automation
of Software Test {(AST 2009)}},
pages = {70--78},
year = 2009,
publisher = {{IEEE} Computer Society},
}
#define ARCH_BITS 64 /* consider a 64 bits architecture */ #define ARCH_BITS 64 /* assume a 64 bits architecture */
#if ARCH_BITS == 32 #if ARCH_BITS == 32
#define SIZEOF_LONG 4 #define SIZEOF_LONG 4
......
...@@ -3,22 +3,23 @@ ...@@ -3,22 +3,23 @@
\framac~\cite{userman,sefm12} is a modular analysis framework for the C language \framac~\cite{userman,sefm12} is a modular analysis framework for the C language
which supports the ACSL specification language~\cite{acsl}. This manual which supports the ACSL specification language~\cite{acsl}. This manual
documents the \eacsl plug-in of \framac. This plug-in automatically translates documents the \eacsl plug-in of \framac. This plug-in automatically translates
an annotated C code into a \C code which fails at runtime if an annotation is an annotated C code into another one which fails at runtime if an annotation is
violated. If no annotation is violated, the behavior of the new program is violated. If no annotation is violated, the behavior of the new program is
exactly the same than the one of the original program. exactly the same than the one of the original program.
Such a translation brings several benefits. First it allows the user to monitor Such a translation brings several benefits. First it allows the user to monitor
a \C code, in particular to perform what is usually called runtime assertion a \C code, in particular to perform what is usually called ``runtime assertion
checking~\cite{runtime-assertion-checking}\footnote{In our context, ``runtime checking''~\cite{runtime-assertion-checking}\footnote{In our context, ``runtime
annotation checking'' would be a better more-general expression.}. That is the annotation checking'' would be a better more-general expression.}. That is the
primary goal of \eacsl. Second it allows to combine \framac and its existing primary goal of \eacsl. Second it allows to combine \framac and its existing
analyzers, with other analyzer tools for \C, even those who do not understand analyzers, with other analyzer tools for \C like
the \acsl specification language. Third, the possibility to detect invalid \pathcrawler~\cite{pathcrawler}, even those who do not understand the \acsl
annotations during a concrete execution may be very helpful while writing a specification language. Third, the possibility to detect invalid annotations
correct specification of a given program, \emph{e.g.} for later program proving. during a concrete execution may be very helpful while writing a correct
Finally, an executable specification makes it possible to check runtime specification of a given program, \emph{e.g.} for later program proving.
assertions that cannot be verified statically and to establish a link between Finally, an executable specification makes it possible to check at runtime
monitoring tools and static analysis tools like assertions that cannot be verified statically and thus to establish a link
between monitoring tools and static analysis tools like
\valueplugin~\cite{value}\index{Value} or \wpplugin~\cite{wp}\index{Wp}. \valueplugin~\cite{value}\index{Value} or \wpplugin~\cite{wp}\index{Wp}.
Annotations must be written in the \eacsl specification Annotations must be written in the \eacsl specification
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
\newcommand{\jml}{\textsc{JML}\xspace} \newcommand{\jml}{\textsc{JML}\xspace}
\newcommand{\valueplugin}{\textsc{Value}\xspace} \newcommand{\valueplugin}{\textsc{Value}\xspace}
\newcommand{\wpplugin}{\textsc{Wp}\xspace} \newcommand{\wpplugin}{\textsc{Wp}\xspace}
\newcommand{\gcc}{\textsc{gcc}\xspace} \newcommand{\pathcrawler}{\textsc{PathCrawler}\xspace}
\newcommand{\gcc}{\textsc{Gcc}\xspace}
\newcommand{\gmp}{\textsc{GMP}\xspace} \newcommand{\gmp}{\textsc{GMP}\xspace}
\newcommand{\nodiff}{\emph{No difference with \acsl.}} \newcommand{\nodiff}{\emph{No difference with \acsl.}}
......
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment