What is Expressiveness in a Computer Language

Pascal Costanza pc at p-cos.net
Sun Jun 25 10:14:14 EDT 2006


Joachim Durchholz wrote:
> Andreas Rossberg schrieb:
>>
>> Luca Cardelli has given the most convincing one in his seminal 
>> tutorial "Type Systems", where he identifies "typed" and "safe" as two 
>> orthogonal dimensions and gives the following matrix:
>>
>>           | typed | untyped
>>    -------+-------+----------
>>    safe   | ML    | Lisp
>>    unsafe | C     | Assembler
>>
>> Now, jargon "dynamically typed" is simply untyped safe, while "weakly 
>> typed" is typed unsafe.
> 
> Here's a matrix how most people that I know would fill in with terminology:
> 
>             | Statically   | Not         |
>             | typed        | statically  |
>             |              | typed       |
>    ---------+--------------+-------------+
>    typesafe | "strongly    | Dynamically |
>             | typed"       | typed       |
>             | (ML, Pascal) | (Lisp)      |
>    ---------+--------------+-------------+
>    not      | (no common   | "untyped"   |
>    typesafe | terminology) |             |
>             | (C)          | (Assembly)  |
>    ---------+--------------+-------------+
> 
> (Terms in quotes are challenged on a regular basis, or rarely if ever 
> applied.)
> 
> With the above terminology, it becomes clear that the opposite if 
> "(statically) typed" isn't "statically untyped", but "not statically 
> typed". "Statically typed" and "dynamically typed" aren't even 
> opposites, they just don't overlap.
> 
> Another observation: type safeness is more of a spectrum than a clearcut 
> distinction. Even ML and Pascal have ways to circumvent the type system, 
> and even C is typesafe unless you use unsafe constructs.
> IOW from a type-theoretic point of view, there is no real difference 
> between their typesafe and not typesafe languages in the "statically 
> typed" column; the difference is in the amount of unsafe construct usage 
> in practial programs.

It's also relevant how straightforward it is to distinguish between safe 
and unsafe code, how explicit you have to be when you use unsafe code, 
how likely it is that you accidentally use unsafe code without being 
aware of it, what the generally accepted conventions in a language 
community are, etc. pp.


Pascal

-- 
3rd European Lisp Workshop
July 3 - Nantes, France - co-located with ECOOP 2006
http://lisp-ecoop06.bknr.net/



More information about the Python-list mailing list