gjc@batserver.cs.uq.oz (Cumming) (09/08/89)
With respect to the call for suggested changes to the language, may I suggest the following 1. Allow old "attribute name" to appear in normal code. As the old prefix is allowed in assertions, I cannot see any difficulty in allowing it to appear in normal code. A trivial example is then the swapping of two integers. y:=old x; -- or just x. x:=old y; This would be very useful in less trivial code. 2. Allowing old to apply to function applications. I realise that this may cause a few more problems in terms of size (of the stored result) and execution time, however as one already has the option of turning assertions off, it would seem reasonable to do so within assertions. Allowing this option in executable code is less important to me. These queries have arisen out of my attempts to formalise the translation of specifications written in the Z specification language into Eiffel. Allowing old "function name" to appear in postconditions(ensure in Eiffel terminology) would be very useful in this regard as there is a defineable mathematical correlation between a Z specification and its postcondition. G.J.Cumming