Towards faster Python implementations - theory
Marc 'BlackJack' Rintsch
bj_666 at gmx.net
Tue May 8 12:55:18 EDT 2007
In <1178641778.266569.13290 at p77g2000hsh.googlegroups.com>, Paul Boddie
wrote:
>> On the typing front, the neatest way to express typing is via
>> initialization. With the Shed Skin restrictions, if all variables are
>> initialized before use (preferably in __init__), there's no need to
>> maintain an "undefined" flag for a variable. And, of course, if
>> the type of a varaible is simple and can't change, it doesn't have to
>> be "boxed", (enclosed in an object) which is a big win.
A variable? :-)
Maybe that last sentence should start with: And, of course, if the type of
objects bound to a name won't change…
> I'm fairly sure, although my intuition unfortunately doesn't provide a
> ready example right now, that typing via initialisation, whilst an
> important tool, may either impose unacceptable restrictions if
> enforced too rigidly or limit the precision that one might desire in
> determining type information in the resulting system.
I often bind a name to `None` first if it is going to be bound to it's
"real" value later on. So this initialization doesn't say anything about
the type(s) that will be bound to it later.
I don't see how this type inference for static types will work unless some
of the dynamism of the language will get restricted. But is this really
necessary? Isn't a JIT compiler and maybe type hinting good enough? By
type hinting I really mean just recommendations from the programmer. So
you can say this name should be an `int` and the JIT compiler produces
code in advance, but it's okay to pass another object instead.
Ciao,
Marc 'BlackJack' Rintsch
More information about the Python-list
mailing list