What is Expressiveness in a Computer Language
Joachim Durchholz
jo at durchholz.org
Tue Jun 20 18:27:29 EDT 2006
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.
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.
> To put it another way, I consider the tags to be axiomatic. Most
> computations involve some decision logic that is driven by distinct
> values that have previously been computed. The separation of the
> values which drive the compuation one-way versus another is a tag.
> That tag can potentially be eliminated by some apriori computation.
Um... just as precomputing constants, I'd say.
Are the constants that went into a precomputed constant eliminated?
On the implementation level, yes. On the semantic/axiomatic level, no.
Or, well, maybe - since that's just an optimization, the compiler may
have decided to no precompute the constant at all.
(Agreeing with the snipped parts.)
Regards,
Jo
More information about the Python-list
mailing list