comp.lang.ada
 help / color / mirror / Atom feed
From: noc.near.net!inmet!spock!stt@uunet.uu.net  (Tucker Taft)
Subject: Re: Ada Readability, Book Reference
Date: 4 Jan 93 23:19:46 GMT	[thread overview]
Message-ID: <1993Jan4.231946.28620@inmet.camb.inmet.com> (raw)

In article <1993Jan4.174424.5699@seas.gwu.edu> 
  mfeldman@seas.gwu.edu (Michael Feldman) writes:

>Hmmm. How on earth could 1.0/3.0 be exact? What would the value be?
>
>I checked my Annotated LRM (thanks to Karl Nyberg!) and found AI-00209:
>"An implementation can refuse to evaluate a static universal real expression
>only if there are insufficient resources to evaluate the expression exactly,
>e.g., if there is insufficient memory available. Inexact results must not
>be delivered."
>
>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!

All Ada compilers I know of have "infinite precision" rational
arithmetic packages for doing static universal real expressions.
So yes, 1.0/3.0 is computed exactly in the front end of the
compiler when it is static universal.  

Most Ada compilers compute *all* static real 
expressions (even non-universal) to "infinite precision" since
that is allowed by the accuracy model and is often simpler 
than simulating the target floating-point hardware in a cross-compiler.

The infinite precision rational arithmetic package is one of 
several things that makes an Ada front end a "fun" piece
of code to write and maintain ;-).

>Mike Feldman

S. Tucker Taft   stt@inmet.com
Intermetrics, Inc.
Cambridge,  MA  02138

             reply	other threads:[~1993-01-04 23:19 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1993-01-04 23:19 Tucker Taft [this message]
  -- strict thread matches above, loose matches on Subject: below --
1993-01-05 16:50 Ada Readability, Book Reference agate!spool.mu.edu!sdd.hp.com!zaphod.mps.ohio-state.edu!cis.ohio-state.ed
1993-01-05 12:55 Robert Firth
1993-01-04 17:44 Michael Feldman
1993-01-04  9:31 agate!spool.mu.edu!enterpoop.mit.edu!eru.mt.luth.se!lunic!sunic!nobeltech
1993-01-03 15:28 Orville R. Weyrich
1992-12-30  3:51 Michael Feldman
1992-12-29 19:35 Alex Blakemore
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox