Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
frama-c
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container Registry
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
pub
frama-c
Commits
fd463fb8
Commit
fd463fb8
authored
3 years ago
by
Julien Signoles
Committed by
Allan Blanchard
3 years ago
Browse files
Options
Downloads
Patches
Plain Diff
[e-acsl:refman] take Thibaut's comments into account
parent
cf16cc03
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/plugins/e-acsl/doc/refman/speclang_modern.tex
+16
-13
16 additions, 13 deletions
src/plugins/e-acsl/doc/refman/speclang_modern.tex
with
16 additions
and
13 deletions
src/plugins/e-acsl/doc/refman/speclang_modern.tex
+
16
−
13
View file @
fd463fb8
...
@@ -23,7 +23,8 @@ More precisely, the grammars of terms and binders presented respectively
...
@@ -23,7 +23,8 @@ More precisely, the grammars of terms and binders presented respectively
Figures~
\ref
{
fig:gram:term
}
and~
\ref
{
fig:gram:binders
}
are the same than the one
Figures~
\ref
{
fig:gram:term
}
and~
\ref
{
fig:gram:binders
}
are the same than the one
of
\acsl
, while Figure~
\ref
{
fig:gram:pred
}
presents the grammar of
of
\acsl
, while Figure~
\ref
{
fig:gram:pred
}
presents the grammar of
predicates. The only differences introduced by
\eacsl
with respect to
\acsl
are
predicates. The only differences introduced by
\eacsl
with respect to
\acsl
are
the quantifications that must be guarded and the introduction of iterators.
the fact that the quantifications that must be guarded and the introduction of
iterators.
\begin{figure}
[htbp]
\begin{figure}
[htbp]
\begin{cadre}
\begin{cadre}
...
@@ -50,8 +51,9 @@ the quantifications that must be guarded and the introduction of iterators.
...
@@ -50,8 +51,9 @@ the quantifications that must be guarded and the introduction of iterators.
\subsection*
{
Quantification
}
\subsection*
{
Quantification
}
{
\highlightnotimplemented
The general form of quantifications (called
{
\highlightnotimplemented
The general form of quantifications (called
generalized quantification below), as described in Fig.~
\ref
{
fig:gram:pred
}
,
generalized quantifications below), as described in
are restricted to a few
\emph
{
finite enumerable types
}
: the types of bound
Fig.~
\ref
{
fig:gram:pred
}
,
is restricted to a few
\emph
{
finite enumerable types
}
: the types of bound
variables must be
\C
integer types, enum types, pointer types, or their
variables must be
\C
integer types, enum types, pointer types, or their
aliases.
aliases.
...
@@ -93,8 +95,8 @@ identifiers $id$ are variable identifiers enclosed in the binder list.
...
@@ -93,8 +95,8 @@ identifiers $id$ are variable identifiers enclosed in the binder list.
\subsection*
{{
\highlightnotimplemented
{
Iterator quantification
}}}
For
\subsection*
{{
\highlightnotimplemented
{
Iterator quantification
}}}
For
iterating over other data structures,
\eacsl
introduces a notion of
$
iterators
$
iterating over other data structures,
\eacsl
introduces a notion of
$
iterators
$
over types that are introduced by a specific construct which attaches two sets
over types that are introduced by a specific construct which attaches two sets
--- namely
\texttt
{
nexts
}
and
the
\texttt
{
guards
}
--- to a binary predicate over
--- namely
\texttt
{
nexts
}
and
\texttt
{
guards
}
--- to a binary predicate over
a type
$
\tau
$
.
Both sets must have the same cardinal
. This construct is
a type
$
\tau
$
.. This construct is
described by the grammar of Figure~
\ref
{
fig:gram:iterator
}
.
described by the grammar of Figure~
\ref
{
fig:gram:iterator
}
.
\begin{figure}
[htbp]
\begin{figure}
[htbp]
\begin{cadre}
\begin{cadre}
...
@@ -106,7 +108,8 @@ described by the grammar of Figure~\ref{fig:gram:iterator}.
...
@@ -106,7 +108,8 @@ described by the grammar of Figure~\ref{fig:gram:iterator}.
For a type
$
\tau
$
,
\texttt
{
nexts
}
is a set of terms, and
\texttt
{
guards
}
a set
For a type
$
\tau
$
,
\texttt
{
nexts
}
is a set of terms, and
\texttt
{
guards
}
a set
of predicates of the same cardinal. Each term in
\texttt
{
nexts
}
is a function
of predicates of the same cardinal. Each term in
\texttt
{
nexts
}
is a function
taking an argument of type
$
\tau
$
and returning a value of type
$
\tau
$
which
taking an argument of type
$
\tau
$
and returning a value of type
$
\tau
$
which
is a successor of its argument. Each predicate in the set gards takes an
is a successor of its argument. Each predicate in the set
\texttt
{
guards
}
takes an
element of type
$
\tau
$
, and is valid (resp. invalid) to indicate that the
element of type
$
\tau
$
, and is valid (resp. invalid) to indicate that the
iteration should continue on the corresponding successor (resp. stop at the
iteration should continue on the corresponding successor (resp. stop at the
given argument).
given argument).
...
@@ -388,8 +391,8 @@ with \lstinline|\old| and \lstinline|\result|.
...
@@ -388,8 +391,8 @@ with \lstinline|\old| and \lstinline|\result|.
\except
{
ranges and
\notimplemented
{
set comprehensions
}
are limited in order to
\except
{
ranges and
\notimplemented
{
set comprehensions
}
are limited in order to
be finite
}
be finite
}
Figure~
\ref
{
fig:gram:locations
}
describes grammar of sets of terms. There
are
Figure~
\ref
{
fig:gram:locations
}
describes
the
grammar of sets of terms. There
two differences with
\acsl
:
are
two differences with
\acsl
:
\begin{itemize}
\begin{itemize}
\item
ranges necessarily have lower and upper bounds;
\item
ranges necessarily have lower and upper bounds;
\item
a guard for each binder is required when defining set comprehension. The
\item
a guard for each binder is required when defining set comprehension. The
...
@@ -445,7 +448,7 @@ set of even integers between 0 and 10.
...
@@ -445,7 +448,7 @@ set of even integers between 0 and 10.
\indextt
{
assert
}
\indextt
{
assert
}
\nodiff
\nodiff
Figure~
\ref
{
fig:gram:assertions
}
summarizes grammar for assertions.
Figure~
\ref
{
fig:gram:assertions
}
summarizes
the
grammar for assertions.
\begin{figure}
[htbp]
\begin{figure}
[htbp]
\begin{cadre}
\begin{cadre}
\input
{
assertions
_
modern.bnf
}
\input
{
assertions
_
modern.bnf
}
...
@@ -461,7 +464,7 @@ Figure~\ref{fig:gram:assertions} summarizes grammar for assertions.
...
@@ -461,7 +464,7 @@ Figure~\ref{fig:gram:assertions} summarizes grammar for assertions.
\except
{
loop invariants lose their inductive nature
}
\except
{
loop invariants lose their inductive nature
}
Figure~
\ref
{
fig:gram:loops
}
shows grammar for loop annotations. There is no
Figure~
\ref
{
fig:gram:loops
}
shows
the
grammar for loop annotations. There is no
syntactic difference with
\acsl
.
syntactic difference with
\acsl
.
\begin{figure}
[htbp]
\begin{figure}
[htbp]
\begin{cadre}
\begin{cadre}
...
@@ -651,7 +654,7 @@ Figure~\ref{fig:gram:stcontracts} shows the grammar of statement contracts.
...
@@ -651,7 +654,7 @@ Figure~\ref{fig:gram:stcontracts} shows the grammar of statement contracts.
\nodiff
\nodiff
Figure~
\ref
{
fig:gram:logic
}
presents grammar of logic definitions.
Figure~
\ref
{
fig:gram:logic
}
presents
the
grammar of logic definitions.
\begin{figure}
[htbp]
\begin{figure}
[htbp]
\fbox
{
\begin{minipage}
{
0.97
\linewidth
}
\vfill
\input
{
logic
_
modern.bnf
}
\fbox
{
\begin{minipage}
{
0.97
\linewidth
}
\vfill
\input
{
logic
_
modern.bnf
}
...
@@ -704,7 +707,7 @@ through semantic criteria.
...
@@ -704,7 +707,7 @@ through semantic criteria.
\nodiff
\nodiff
Figure~
\ref
{
fig:gram:logicdecl
}
presents grammar of
inductive predicate
s.
Figure~
\ref
{
fig:gram:logicdecl
}
presents
the
grammar of
axiomatic definition
s.
\begin{figure}
[htbp]
\begin{figure}
[htbp]
\fbox
{
\begin{minipage}
{
0.97
\linewidth
}
\vfill
\input
{
logicdecl
_
modern.bnf
}
\fbox
{
\begin{minipage}
{
0.97
\linewidth
}
\vfill
\input
{
logicdecl
_
modern.bnf
}
...
@@ -713,7 +716,7 @@ Figure~\ref{fig:gram:logicdecl} presents grammar of inductive predicates.
...
@@ -713,7 +716,7 @@ Figure~\ref{fig:gram:logicdecl} presents grammar of inductive predicates.
\label
{
fig:gram:logicdecl
}
\label
{
fig:gram:logicdecl
}
\end{figure}
\end{figure}
Axiomatic de
clara
tions in all their generality are not monitorable. Therefore,
Axiomatic de
fini
tions in all their generality are not monitorable. Therefore,
future versions of this document will restrict them syntactically and/or
future versions of this document will restrict them syntactically and/or
through semantic criteria.
through semantic criteria.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment