What is Expressiveness in a Computer Language
Anton van Straaten
anton at appsolutions.com
Thu Jun 22 19:50:26 EDT 2006
Rob Thorpe wrote:
>>So, will y'all just switch from using "dynamically typed" to "latently
>>typed", and stop talking about any real programs in real programming
>>languages as being "untyped" or "type-free", unless you really are
>>talking about situations in which human reasoning doesn't come into
>>play? I think you'll find it'll help to reason more clearly about this
>>whole issue.
>
>
> I agree with most of what you say except regarding "untyped".
>
> In machine language or most assembly the type of a variable is
> something held only in the mind of the programmer writing it, and
> nowhere else. In latently typed languages though the programmer can
> ask what they type of a particular value is. There is a vast
> difference to writing code in the latter kind of language to writing
> code in assembly.
The distinction you describe is pretty much exactly what I was getting
at. I may have put it poorly.
> I would suggest that at least assembly should be referred to as
> "untyped".
Yes, I agree.
While we're talking about "untyped", I want to expand on something I
wrote in a recent reply to Vesa Karvonen: I accept that "untyped" has a
technical definition which means that a language doesn't statically
assign types to terms. But this doesn't capture the distinction between
"truly" untyped languages, and languages which tag their values to
support the programmer's ability to think in terms of latent types.
The point of avoiding the "untyped" label is not because it's not
technically accurate (in a limited sense) -- it's because in the absence
of other information, it misses out on important aspects of the nature
of latently typed languages. My reply to Vesa goes into more detail
about this.
Anton
More information about the Python-list
mailing list