From mboxrd@z Thu Jan 1 00:00:00 1970 From: arnold@skeeve.com (arnold@skeeve.com) Date: Wed, 07 Jun 2017 07:20:43 -0600 Subject: [TUHS] Array index history In-Reply-To: References: Message-ID: <201706071320.v57DKhmJ026303@freefriends.org> shawn wilson 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