VDM-10 Language Manual
VDM-10 Language Manual
VDM-10 Language Manual
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
A.6.2<br />
A.6.3<br />
A.6.4<br />
The <strong>VDM</strong>-SL State Definition<br />
state definition = ‘state’, identifier, ‘of’, field list,<br />
[ invariant ], [ initialisation ], ‘end’, [ ‘;’ ] ;<br />
invariant = ‘inv’, invariant initial function ;<br />
initialisation = ‘init’, invariant initial function ;<br />
invariant initial function = pattern, ‘==’, expression ;<br />
Value Definitions<br />
value definitions = ‘values’, [ access value definition ],<br />
{ ‘;’, access value definition }, [ ‘;’ ] ;<br />
<strong>VDM</strong>-<strong>10</strong> <strong>Language</strong> <strong>Manual</strong><br />
access value definition = ([ access ], [ ‘static’ ]) | ([ ‘static’ ], [ access ]),<br />
value definition ;<br />
value definition = pattern, [ ‘:’, type ], ‘=’, expression ;<br />
Function Definitions<br />
function definitions = ‘functions’, [ access function definition ],<br />
{ ‘;’, access function definition }, [ ‘;’ ] ;<br />
access function definition = [ access ], function definition ;<br />
function definition = explicit function definition<br />
| implicit function definition<br />
| extended explicit function definition ;<br />
explicit function definition = identifier, [ type variable list ], ‘:’,<br />
function type,<br />
identifier, parameters list,<br />
‘==’, function body,<br />
[ ‘pre’, expression ] ,<br />
[ ‘post’, expression ],<br />
[ ‘measure’, name ] ;<br />
implicit function definition = identifier, [ type variable list ],<br />
parameter types,<br />
identifier type pair list,<br />
[ ‘pre’, expression ],<br />
‘post’, expression ;<br />
178