From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,FREEMAIL_FROM, PP_MIME_FAKE_ASCII_TEXT autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,c4cb2c432feebd9d X-Google-Thread: 1094ba,c4cb2c432feebd9d X-Google-Thread: 101deb,15c6ed4b761968e6 X-Google-Attributes: gid103376,gid1094ba,gid101deb,public X-Google-Language: ENGLISH,ASCII Path: g2news2.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newscon06.news.prodigy.com!prodigy.net!newsfeed-00.mathworks.com!lon-transit.news.telstra.net!lon-in.news.telstra.net!news.telstra.net!news-server.bigpond.net.au!53ab2750!not-for-mail From: "robin" Newsgroups: comp.lang.ada,comp.lang.fortran,comp.lang.pl1 References: <0ugu4e.4i7.ln@hunter.axlog.fr> <%P_cg.155733$eR6.26337@bgtnsc04-news.ops.worldnet.att.net> <6H9dg.10258$S7.9150@news-server.bigpond.net.au> <1hfv5wb.1x4ab1tbdzk7eN%nospam@see.signature> <2006052509454116807-gsande@worldnetattnet> Subject: Re: Ada vs Fortran for scientific applications X-Newsreader: Microsoft Outlook Express 4.72.3110.5 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Message-ID: Date: Tue, 11 Jul 2006 01:29:01 GMT NNTP-Posting-Host: 203.54.237.115 X-Complaints-To: abuse@bigpond.net.au X-Trace: news-server.bigpond.net.au 1152581341 203.54.237.115 (Tue, 11 Jul 2006 11:29:01 EST) NNTP-Posting-Date: Tue, 11 Jul 2006 11:29:01 EST Organization: BigPond Internet Services Xref: g2news2.google.com comp.lang.ada:5598 comp.lang.fortran:11916 comp.lang.pl1:1968 Date: 2006-07-11T01:29:01+00:00 List-Id: James Giles wrote in message ... >Martin Dowie wrote: >> James Giles wrote: >... >>> In most Ada implementations, as for most other languages, all >>> the bit patterns in the representation of an INTEGER data type >>> are valid integer values. >> >> That's not entirely true, the standard states Integer must include the >> range �2**15+1 .. +2**15�1 - thus (usually) leaving -2**15 as a >> possible 'default uninitialized' value. > >Well I allowed for that possibility. I made no absolute >assertion. I said "most Ada implementations". In fact, >most language definitions *allow* implementations >to implement integers with a lot of flexibility. Most >actual implementations use all the bit patterns their >underlying hardware allows and *don't* use any of >them for NOI (Not An Integer). Exceptioins include WATFOR and WATFIV, PL/C. In BASIC, all variables have an initial value of zero. In IBM's PL/I [PC and mainframe] provision is made to detect uninitialized fixed-point decimal variables via hardware, and this has been the case of their mainframe PL/Is since 1965. The pre-decessor of WATFOR (IBM 704?) used hardware (parity bit set wrong) for uninitialized variables. > And, let's not forget >character data types (does your actual implementation >have a value that means NOC - Not A Character?). >What about booleans? Ada also has fixed point types, >enumerations, records, etc. Does your actual implementation >catch uses of undefined variables for all those? Indeed, >does it even use NANs from the floating point hardware to >detect uninitialized REALs? > >It's true: nearly all languages permit implementations >to internally represent data with additional memory >for the purpose of detecting and reporting uses of >undefined variables (and for other reasons - like the >value of a variable that was defined, but the expression >involved an unhandled exception). In formal semantics, >the idea is called a lifted domain. Applying it in software >is expensive at run-time. Not necessarily. It isn't in the case of Salford Fortran (now Silverfrost), nor in WATFOR and WATFIV, PL/C, and fixed-point decimal in IBM's PL/I compilers.