25.07.2014 Views

VDM-10 Language Manual

VDM-10 Language Manual

VDM-10 Language Manual

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Appendix A. The Syntax of the <strong>VDM</strong> <strong>Language</strong>s<br />

externals = ‘ext’, var information, { var information } ;<br />

var information = mode, name list, [ ‘:’, type ] ;<br />

mode = ‘rd’ | ‘wr’ ;<br />

exceptions = ‘errs’, error list ;<br />

error list = error, { error } ;<br />

error = identifier, ‘:’, expression, ‘->’, expression ;<br />

A.6.6<br />

Instance Variable Definitions (<strong>VDM</strong>++ and <strong>VDM</strong>-RT)<br />

instance variable definitions = ‘instance’, ‘variables’,<br />

[ instance variable definition,<br />

{ ‘;’, instance variable definition } ] ;<br />

instance variable definition = access assignment definition<br />

| invariant definition ;<br />

access assignment definition = ([ access ], [ ‘static’ ]) | ([ ‘static’ ], [ access ]),<br />

assignment definition ;<br />

invariant definition = ‘inv’, expression ;<br />

A.6.7<br />

Synchronization Definitions (<strong>VDM</strong>++ and <strong>VDM</strong>-RT)<br />

synchronization definitions = ‘sync’, [ synchronization ] ;<br />

synchronization = permission predicates ;<br />

permission predicates = permission predicate,<br />

{ ‘;’, permission predicate } ;<br />

permission predicate = ‘per’, name, ‘=>’, expression<br />

| mutex predicate ;<br />

mutex predicate = ‘mutex’, ‘(’, ‘all’, ‘)’<br />

| ‘mutex’, ‘(’, name list ‘)’ ;<br />

181

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

Saved successfully!

Ooh no, something went wrong!