[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [office-formula] 3.1 Expression calculation
Patrick Durusau <firstname.lastname@example.org> wrote on 01/15/2009 05:50:21 PM: > > I suppose what triggered my original interest was why we would be > describing anything as it "appears to the end-user." ? > There is probably a better way to restate the idea rather than "appears to the end user". The main idea is that we describe a deterministic method of evaluating expressions. A conforming implementation may use other methods of evaluating expressions, but they shall yield the same results as the method described. We make this allowance for sake of differing computational models. For example a spreadsheet running on a multi-processor machine might use different algorithms for calculating some functions than a single-processor machine might, although they will give the same answer. Similarly, a smart implementation might parse an expression and decide to shortcut the evaluation. So an implementation could conceivably evaluate "sin(.1)*cos(.5)*0.0" to 0.0 without actually calculating each part of the expression. We don't care what actually goes on inside, so long as it gives the same answer as the method OpenFormula describes. In other words, we specify constraints on the output, not on the implementation. For example, ISO C++ puts it like this: "This International Standard places no requirement on the structure of conforming implementations. In particular, they need not copy or emulate the structure of the abstract machine. Rather, conforming implementations are required to emulate (only) the observable behavior of the abstract machine as explained below". Maybe that language could be adopted?