25.07.2014 Views

VDM-10 Language Manual

VDM-10 Language Manual

VDM-10 Language Manual

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!