[
Lists Home |
Date Index |
Thread Index
]
John Cowan <cowan@mercury.ccil.org> writes:
> Alaric B. Snell scripsit:
>
> > > Or PL/I that Sean mentioned. I seem to remember a variable was assumed
> > > to be a double if its name started with 'n' and other types for other
> > > initials. So when you made a typo, nubmer_of_things was was not
> > > reported as an error but rather contained garbage, and possibly of a
> > > different type than what you expected. But of course it all worked
> > > through autoconversions, until you suddenly got an underflow on what
> > > you thought was an integer.
> >
> > Ugh! That sounds broken. However, if you're using a naming convention to
> > signal types to the compiler, that's still static typing...
>
> Yes indeed. For the record, PL/I used the Fortran convention: if a
> variable name began with I, J, K, L, M, or N, it was predeclared an
> integer (a 16-bit one in PL/I, the local integer type in Fortran);
> otherwise, it was predeclared a single-precision float.
>
> One way to detect such blunders as nubmer_of_things was to look through
> the cross-reference listing for any variables only mentioned once.
> They were essentially always such typos.
The compiler I used would issue an [I]nformatory message (lower
severity than [W]arning [E]rror and [U]ndefined -- aren't you glad it
had all these grades of messages?) for every implicit declaration, and
like you say, almost all [I]'s would turn out to be typos.
But the language was still strongly and statically typed.
Ari.
|