OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office-formula message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [office-formula] 3.1 Expression calculation


Patrick Durusau <patrick@durusau.net> 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? 



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]