What is Expressiveness in a Computer Language

David Hopwood david.nospam.hopwood at blueyonder.co.uk
Sat Jun 24 17:38:08 CEST 2006

Anton van Straaten wrote:
> I'm suggesting that if a language classifies and tags values in a way
> that supports the programmer in static reasoning about the behavior of
> terms, that calling it "untyped" does not capture the entire picture,
> even if it's technically accurate in a restricted sense (i.e. in the
> sense that terms don't have static types that are known within the
> language).
> Let me come at this from another direction: what do you call the
> classifications into number, string, vector etc. that a language like
> Scheme does?  And when someone writes a program which includes the
> following lines, how would you characterize the contents of the comment:
> ; third : integer -> integer
> (define (third n) (quotient n 3))

I would call it an informal type annotation. But the very fact that
it has to be expressed as a comment, and is not checked, means that
the *language* is not typed (even though Scheme is dynamically tagged,
and even though dynamic tagging provides *partial* support for a
programming style that uses this kind of informal annotation).

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

More information about the Python-list mailing list