From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.5-pre1 Date: 5 Jan 93 12:55:57 GMT From: zaphod.mps.ohio-state.edu!cis.ohio-state.edu!news.sei.cmu.edu!firth@uunet .uu.net (Robert Firth) Subject: Re: Ada Readability, Book Reference Message-ID: <1993Jan5.075557.18978@sei.cmu.edu> List-Id: In article <1993Jan4.174424.5699@seas.gwu.edu> mfeldman@seas.gwu.edu (Michael F eldman) writes: >This is interesting. I take it, then, that 1.0/3.0 will be flagged by >the compiler, because - unless a rational representation is being >used, which is always possible, I suppose - there aren't enough bits >in a megabyte to evaluate it exactly. Do compilers use rationals >for this? I'll be back later, after a test or two of this! Mike, in my experience most Ada compilers do indeed use rational arithmetic to represent numbers and to evaluate universal expressions. Together, the lexis of numbers and the syntax of arithmetic expressions guarantee that all constructible numbers are rational (bet you never knew one of the designers was a closet Pythagorean!). The number "1.0/3.0" would therefore be held internally as 1/3, until the time came to spit out the right bits for the chosen target machine type. I think a universal arithmetic package is available in the Simtel archives.