What is Expressiveness in a Computer Language

Joachim Durchholz jo at durchholz.org
Mon Jun 26 17:45:27 EDT 2006


Anton van Straaten schrieb:
> Joachim Durchholz wrote:
 >> Anton van Straaten schrieb:
>>> There's a close connection between latent types in the sense I've 
>>> described, and the "tagged values" present at runtime.  However, as 
>>> type theorists will tell you, the tags used to tag values at runtime, 
>>> as e.g. a number or a string or a FooBar object, are not the same 
>>> thing as the sort of types which statically-typed languages have.
>>
>> Would that be a profound difference, or is it just that annotating a 
>> value with a full type expression would cause just too much runtime 
>> overhead?
> 
> It's a profound difference.  The issue is that it's not just the values 
> that need to be annotated with types, it's also other program terms.

Yes - but isn't that essentially just auxiliary data from and for the 
data-flow analysis that tracks what values with what types might reach 
which functions?

 > In
> addition, during a single run of a program, all it can ever normally do 
> is record the types seen on the path followed during that run, which 
> doesn't get you to static types of terms.  To figure out the static 
> types, you really need to do static analysis.

Agreed.

Regards,
Jo



More information about the Python-list mailing list