What is Expressiveness in a Computer Language

Joachim Durchholz jo at durchholz.org
Sun Jun 25 08:36:48 EDT 2006


Chris F Clark schrieb:
> Chris F Clark schrieb:
>> In that sense, a static type system is eliminating tags, because the
>> information is pre-computed and not explicitly stored as a part of the
>> computation.  Now, you may not view the tag as being there, but in my
>> mind if there exists a way of perfoming the computation that requires
>> tags, the tag was there and that tag has been eliminated.
> 
> Joachim Durchholz replied:
>> On a semantic level, the tag is always there - it's the type (and
>> definitely part of an axiomatic definition of the language).
>> Tag elimination is "just" an optimization.
> 
> I agree the tag is always there in the abstract.  

Well - in the context of a discussion of dynamic and static typing, I'd 
think that the semantic ("abstract") level is usually the best level of 
discourse.
Of course, this being the Usenet, shifting the level is common (and can 
even helpful).

> In the end, I'm trying to fit things which are "too big" and "too
> slow" into much less space and time, using types to help me reliably
> make my program smaller and faster is just one trick.  [...]
> 
> However, I also know that my way of thinking about it is fringe.

Oh, I really agree that's an important application of static typing.

Essentially, which aspects of static typing is more important depends on 
where your problems lie: if it's ressource constraints, static typing 
tends to be seen as a tool to keep ressource usage down; if it's bug 
counts, static typing tends to be seen as a tool to express static 
properties.
These aspects are obviously not equally important to everybody.

Regards,
Jo



More information about the Python-list mailing list