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.


More information about the Python-list mailing list