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: (fwd) Should OpenFormula BASE() and DECIMAL() definitions listcharacter set?


I checked with our local Unicode guru, to make sure we were expressing 
this right.  He confirmed that it is correct to refer to the "value space" 
as Unicode "characters" and "strings", and the serialized versions as 
"encoded characters".

I'm still working on the "abstract machine" model for OpenFormula.  But I 
wonder if we can say something like:


-----------------------------

A formula evaluator is an abstract machine that takes a Unicode string as 
input and returns one of the following as output a single value, or a 
2-dimension matrix of values of the following types:

1)A Unicode string
2)A floating point number
3)An error value from those enumerated in section x.y.z

---------------------------------

I assume we need to allow the return of a matrix to support array 
formulas.

Note that we say nothing here about how things are displayed.  This is all 
in the abstract.  How things are displayed is up to the spreadsheet 
specification, and is dependent on the underlying cell format, e.g., date 
versus currency versus numeric.   If we wanted to, we could have a richer 
type system, including explicit date and Boolean types.  Although 
applications do not explicitly have those types evident in the UI, it may 
be simpler to define OpenFormula in a way that has them as types in the 
abstract machine.  If we did that we would need to define implicit 
conversions between types.  If we don't, we would need to define how 
numbers are converted to dates.  Same thing, different formalism.... I 
think...

We would also need, if we go down this road, to define the capabilities of 
the abstract machine in terms of basic mathematical and string operations 
it can support, such as basic arithmetical operations, numeric 
integration, string, etc. We would then ensure that each of the 
spreadsheet functions was defined in terms of the enumerated operations of 
the abstract machine.  This doesn't need to be a huge amount of work.  I 
think a scan through the formulas would give us a list of primitive 
operations that abstract machine would need to support.

Once you have all that, then we define conformance:

----------------

"A conforming formula evaluator shall return results that are identical to 
that defined by this specification, or for floating point return values, 
results that are within the required tolerances"

----------------

Something like that.  The idea is to make the conformance definition be 
based on matching the outputs of a defined abstract machine. 

I'd be interested in opinions on this.  Is this a total waste of time? Or 
does would this approach appreciably strengthen the specification, 
especially in the areas that Patrick was concerned about?

-Rob


"David A. Wheeler" <dwheeler@dwheeler.com> wrote on 05/06/2009 02:09:48 
PM:
>
> 
> robert_weir wrote:
> > I'm cc'ing David Wheeler, who is chair of the formula subcommittee, 
and 
> > Eike Rathke, who is editing OpenFormula (or at least will when he 
returns 
> > from vacation).
> ...
> > In any case, I agree with your observation, that the range 'A'-'Z', 
> > without stating an encoding is locale-dependent and this is a problem 
we 
> > need to fix.
> ...
> > I suggest we explicitly state, in the introduction to the 
specification, 
> > that all string and character literals in OpenFormula are in the value 

> > space defined by Unicode.  Then we can refer unambiguously to U+0041 
('A') 
> > through U+005A ('Z') and U+0030 ('0') through U+0039 ('9').
> 
> Great solution.  Any objections?  I think we should do this.
> 
> --- David A. Wheeler



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