shawn wilson <ag4ve.us(a)gmail.com> wrote:
I learned the other day that array indexes in some
languages start at 1
instead of 0. This seems to be an old trend that changed around the 70s?
Who started this? Why was the change made?
It seems to have come about around the same time as C, but interestingly
enough Lua is kinda in between (you can start an array at 0 or 1).
Smalltalk can probably have a 0 base index just by it's nature, but I
wonder whether that would work in a 40 year old interpreter.
Basically, until C came along, the standard practice was for indices
to start at 1. Certainly Fortran and Pascal did it that way. I suspect
that all the Algol family languages did too, but I only did a little
Algol W programming in colledge and that was long ago. I think Cobol also.
Pascal (IIRC) allowed you to specify upper and lower bounds, something
like
foo : array[5..10] of integer;
with runtime bounds checking on array accesses. (I could be wrong ---
it's been a LLLLOOONNNGGG time.)
HTH,
Arnold