cspw.quagga@p0.f4.n494.z5.fidonet.org (cspw quagga) (06/10/90)
>In article <1631@dinl.mmc.UUCP> noren@dinl.UUCP (Charles Noren) writes: >> C Advantage list: >> 5. Array subscripts in C must start with zero, which for >> some is counter intuitive > IMHO, our experience with flexible lower bounds has been appalling, and not a very useful programming feature. The Pascal/Modula camp still has difficulty deciding whether ARRAY [1..10] OF T; is equivalent/assignment compatible with ARRAY ['A'..'J'] OF T; And even a cursory glance at most Modula implementations can show the difficulty of trying to provide a general mechanism with variable lower bounds. (For example, when one passes an array to a formal parameter which is an 'open' array, the bounds are automatically 'renumbered' as if they began at 0. Many library procedures (eg Pos) that are widely used return HIGH(array)+1 to denote a non-found condition, or return the position of the located element AS IF THE ARRAY HAD BEEN NUMBERED FROM 0. Declaring ARRAY [1..10] OF CHAR and trying to use the library procedures is a recipe for a complete mess. So I think fixed lower bounds are more natural and will always provide better consistency and abstraction in the language. I think it is a minor argument about whether 0 or 1 is the chosen lower bound (this was a C vs Fortan thread, once upon a time). If the C convention is counter-intuitive for some, they'll need to adjust their intuition. Pete -- EP Wentworth - Dept. of Computer Science - Rhodes University - Grahamstown. Internet: cspw.quagga@f4.n494.z5.fidonet.org Uninet: cspw@quagga uucp: ..uunet!m2xenix!quagga!cspw -- uucp: uunet!m2xenix!puddle!5!494!4.0!cspw.quagga Internet: cspw.quagga@p0.f4.n494.z5.fidonet.org