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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,a3ca574fc2007430 X-Google-Attributes: gid103376,public X-Google-Thread: 115aec,f41f1f25333fa601 X-Google-Attributes: gid115aec,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: Ada and Automotive Industry Date: 1996/11/22 Message-ID: #1/1 X-Deja-AN: 198230245 references: <1996Nov8.183051.21638@ole.cdac.com> <56jfcf$5lq@krusty.irvine.com> organization: New York University newsgroups: comp.lang.ada,comp.realtime Date: 1996-11-22T00:00:00+00:00 List-Id: Adam says about my array declaration (1 .. 10) of ... "I think the idea of always specifying Integer explicitly is valuable, but the example chosen is unfortunate. In the above case, the explicit use of Integer "draws attention" to something that is in this case irrelevant. Of course, if you're specifying integer types for all your array bounds, you should do it here too for consistency. But I hope that if I code the above statement, no one reading the code is going to pay much attention to the fact that I'm using an implementation-dependent integer type." And what a NICE example this is of why exactly this is insidious. Adam just assumes that because the bounds are 1..10 all is OK, but the trouble is that once you have this delaration then type integer has crept in silently. Consider: for x in arr'Range loop if Is_Prime (2 ** X - 1) then .... and suddenly we have a *real* dependence on type integer that is very hidden from view. I stick by my original point, and I do not apologize for the example, it was intentional!