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.
<strong>VDM</strong>-<strong>10</strong> <strong>Language</strong> <strong>Manual</strong><br />
A.6.8<br />
A.6.9<br />
Thread Definitions (<strong>VDM</strong>++ and <strong>VDM</strong>-RT)<br />
thread definitions = ‘thread’, [ thread definition ] ;<br />
thread definition = periodic thread definition<br />
| procedural thread definition ;<br />
periodic thread definition = periodic obligation ;<br />
periodic obligation = ‘periodic’,‘(’, numeral, numeral, numeral,<br />
numeral, ‘)’, ‘(’, name, ‘)’ ;<br />
procedural thread definition = statement ;<br />
Trace Definitions<br />
traces definitions = ‘traces’, { named trace } ;<br />
named trace = identifier, { ‘/’, identifier }, ‘:’, trace definition list ;<br />
trace definition list = trace definition term, { ‘;’, trace definition term } ;<br />
trace definition term = trace definition<br />
| trace definition term, ‘|’, trace definition ;<br />
trace definition = trace core definition<br />
| trace bindings, trace core definition<br />
| trace core definition, trace repeat pattern<br />
| trace bindings, trace core definition, trace repeat pattern ;<br />
trace core definition = trace apply expression<br />
| trace bracketed expression ;<br />
trace apply expression = call statement ;<br />
trace repeat pattern = ‘*’<br />
| ‘+’<br />
| ‘?’<br />
| ‘{’, numeric literal, ‘}’<br />
| ‘{’, numeric literal, ‘,’ numeric literal, ‘}’ ;<br />
trace bracketed expression = ‘(’, trace definition list, ‘)’ ;<br />
trace bindings = trace binding, { trace binding } ;<br />
trace binding = ‘let’, local definitions, { ‘,’, local definition }, ‘in’<br />
| ‘let’, multiple bind, ‘in’<br />
| ‘let’, multiple bind, ‘be’, ‘st’, expression, ‘in’ ;<br />
182