What is Expressiveness in a Computer Language

David Hopwood david.nospam.hopwood at blueyonder.co.uk
Sat Jun 24 11:04:02 EDT 2006


Anton van Straaten wrote:
> rossberg at ps.uni-sb.de wrote:
> 
>> I very much agree with the observation that every programmer performs
>> "latent typing" in his head 
[...]
>> But I also think that "latently typed language" is not a meaningful
>> characterisation. And for the very same reason! Since any programming
>> activity involves latent typing - naturally, even in assembler! - it
>> cannot be attributed to any language in particular, and is hence
>> useless to distinguish between them. (Even untyped lambda calculus
>> would not be a counter-example. If you really were to program in it,
>> you certainly would think along lines like "this function takes two
>> chuch numerals and produces a third one".)
> 
> Vesa raised a similar objection in his post 'Saying "latently typed
> language" is making a category mistake'.  I've made some relevant
> responses to that post.
> 
> I agree that there's a valid point in the sense that latent types are
> not a property of the semantics of the languages they're associated with.
> 
> But to take your example, I've had the pleasure of programming a little
> in untyped lambda calculus.  I can tell you that not having tags is
> quite problematic.  You certainly do perform latent typing in your head,
> but without tags, the language doesn't provide any built-in support for
> it.  You're on your own.

I can accept that dynamic tagging provides some support for latent typing
performed "in the programmer's head". But that still does not mean that
dynamic tagging is the same thing as latent typing, or that languages
that use dynamic tagging are "latently typed". This simply is not a
property of the language (as you've already conceded).

-- 
David Hopwood <david.nospam.hopwood at blueyonder.co.uk>



More information about the Python-list mailing list