[comp.lang.eiffel] old as a prefix to function calls and in executable code

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