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.

Chapter 18. Trace Definitions<br />

stack := [];<br />

public Pop : () ==> int<br />

Pop() ==<br />

def res = hd stack in<br />

(stack := tl stack;<br />

return res)<br />

pre stack []<br />

post stack˜ = [RESULT] ˆ stack;<br />

public Push: int ==> ()<br />

Push(elem) ==<br />

stack := stack ˆ [elem];<br />

public Top : () ==> int<br />

Top() ==<br />

return (hd stack);<br />

end Stack<br />

class UseStack<br />

instance variables<br />

s : Stack := new Stack();<br />

traces<br />

PushBeforePop : s.Reset();<br />

(let x in set {1,2} in s.Push(x)){1,4};<br />

s.Pop(){1,3}<br />

end UseStack<br />

✡✝<br />

✆<br />

163

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

Saved successfully!

Ooh no, something went wrong!