Python Type-Inference based LINT.. (pylint.py)
Greg Ewing
greg.ewing at compaq.com
Wed Nov 24 05:54:10 EST 1999
Martijn Faassen wrote:
>
> Note that this doesn't need to be a syntax extension; check out some of
> my Swallow posting with dejanews for examples of how it could work in
> current Python.
I think I'd prefer it if it *were* a syntax extension.
The suggestions I've seen so far for non-syntax-extending
type declarations strike me as rather ugly.
That's a minor point, though -- the main thing is to
get some sort of type checker to work! The syntax can
be thrashed out later.
> I myself would take the Python subset approach
> (i.e. Swallow) to make sure no runtime dynamics exist that can mess up
> any type checking. Seems to me the easier approach
Me, too. Also, I tend to think that explicit type
declarations are a valuable way for the programmer to
state the *intent* of the code in a way that both
humans and compilers can process. In my experience,
type errors are found sooner and reported in a more
easily understood way when explicit type declarations
are used.
I've tried it both ways when using Haskell-like
languages, and I find that the error messages I get
when I don't explicitly declare types tend to be of
the form
Couldn't unify <some-big-hairy-complicated-type-
expression> with <some-other-big-hairy-complicated-
type-expression-that-looks-vaguely-similar-although-
there-must-be-some-subtle-difference-if-only-I-can-
find-it>.
After getting a few of those I quickly learned to
provide type declarations for ALL my functions...
Greg
More information about the Python-list
mailing list