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.9 required=5.0 tests=BAYES_00 autolearn=ham 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-7-bit Path: g2news2.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newscon06.news.prodigy.com!prodigy.net!newsdst02.news.prodigy.com!prodigy.com!postmaster.news.prodigy.com!newssvr13.news.prodigy.com.POSTED!4988f22a!not-for-mail From: 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> <1kzktalo9krea$.z8n9wev45xct$.dlg@40tude.net> Subject: Re: Ada vs Fortran for scientific applications X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.2180 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 X-RFC2646: Format=Flowed; Original Message-ID: NNTP-Posting-Host: 70.134.98.164 X-Complaints-To: abuse@prodigy.net X-Trace: newssvr13.news.prodigy.com 1152549680 ST000 70.134.98.164 (Mon, 10 Jul 2006 12:41:20 EDT) NNTP-Posting-Date: Mon, 10 Jul 2006 12:41:20 EDT Organization: SBC http://yahoo.sbc.com X-UserInfo1: TSUGW^WETZSMB_DX]BCBNWX@RJ_XPDLMN@GZ_GYO^BSZUSAANVUEAE[YETZPIWWI[FCIZA^NBFXZ_D[BFNTCNVPDTNTKHWXKB@X^B_OCJLPZ@ET_O[G\XSG@E\G[ZKVLBL^CJINM@I_KVIOR\T_M_AW_M[_BWU_HFA_]@A_A^SGFAUDE_DFTMQPFWVW[QPJN Date: Mon, 10 Jul 2006 16:41:20 GMT Xref: g2news2.google.com comp.lang.ada:5595 comp.lang.fortran:11893 comp.lang.pl1:1966 Date: 2006-07-10T16:41:20+00:00 List-Id: "Dmitry A. Kazakov" wrote in message news:1kzktalo9krea$.z8n9wev45xct$.dlg@40tude.net... > On Sun, 09 Jul 2006 21:36:07 GMT, James Giles wrote: > > Yes, unfortunately this is one case, where Ada's default is not safe. A > better design would be to require explicit initialization for all variables > of types with assignment. If the programmer wanted to leave something > uninitialized, he should do it explicitly: > > Sum : Integer := 0; > Count : Integer := <>; > Bar : Integer; -- Error: no public default constructor visible > Actually, explicit initialization with valid values, as shown above, can increase the likelihood of errors. Ada will detect, at run-time, a value that does not conform to the given type definition. A better solution, is to use Ada's pragma Normalize_Scalars as defined in the Safety and Security Annex of the Ada Language Reference Manual. Further, it is not wise to use the predefined type, Integer, in most cases. Rather, one should define the type with ranges and constraints that conform exactly to the problem being solved. This latter approach is one of Ada's strengths. For example, type My number_1 is range -2**15 .. 2**15 -1; for My_Number_1'Size use 16; -- more representation clauses, where appropriate or even type My number_2 is range -473..473; for My_Number_2'Size use 12; for My_Number'Alignment use some-boundary-number -- more representation clauses, where appropriate Since this is a multi-language discussion, I am interested in the method some of the other languages might use to define My_Number_1 and My_Number_2. In particular, since Fortran and PL/I advocates are contributing to the discussion, how do these languages approach this issue. I'm sure PL/I has a good way to do this. Richard Riehle