| Mark Yudkin 2004-03-27, 12:17 am |
| Fortran (at least until 9x) defined arrays in such as manner as to preclude
the need for dope vectors. Array sizes in parameters could haev variable
dimensions, but the dimensions were not implicit - they had to included in
the formal parameter declaration, and typically were defined in terms of
other parameters. The result was that an array could be passed by address,
rather than requiring a dope vector.
Dope vectors were used in Algol-60 and follow ons. The language that took
dope vectors to the extreme was Algol-68, which had constructs for slicing
arrays (e.g. pull out an arbitrary 2*3 subarray from a 10*10*10 array in an
expression). PL/I was partially adopted that functionality using simply
defining; however, this was declarative rather than expressional, and so it
wasn't as general purpose.
"glen herrmannsfeldt" <gah@ugcs.caltech.edu> wrote in message
news:lu55c.8113$SR1.21301@attbi_s04...
> Tom Linden wrote:
>
news:<ZGb2c.51833$ko6.401682@attbi_s02>...[color=darkred]
>
> (snip regarding dope vectors and Algol)
>
invented[color=darkred]
>
promulgation[color=darkred]
dope vectors[color=darkred]
>
> All of the IBM Fortran compilers I knew used static allocation,
> and so wouldn't need dope vectors. I don't know about VS Fortran,
> but my guess is that it uses static allocation, also.
>
> -- glen
>
|