Localized Type Inference of Atomic Types in Python

Brett C. bac at OCF.Berkeley.EDU
Wed May 25 01:11:34 CEST 2005

My thesis, "Localized Type Inference of Atomic Types in Python", was
successfully defended today for my MS in Computer Science at the California
Polytechnic State University, San Luis Obispo.  With that stamp of approval I
am releasing it to the world.  You can grab a copy at
http://www.drifty.org/thesis.pdf .

For those of you who attended my talk at PyCon 2005 this is the thesis that
stemmed from the presented data.

As of this exact moment I am not planning to release the source code mainly
because it's a mess, I am not in the mood to pull the patches together, and the
last thing I want happening is people finding mistakes in the code.  =)  But if
enough people request the source I will take the time to generate a tar.bz2
file of patches against the 2.3.4 source release and put them up somewhere.

Below is the abstract culled directly from the thesis itself.

-Brett C.


Types serve multiple purposes in programming.  One such purpose is in providing
information to allow for improved performance.  Unfortunately, specifying the
types of all variables in a program does not always fit within the design of a
programming language.

Python is a language where specifying types does not fit within the language
design.  An open source, dynamic programming language, Python does not support
type specifications of variables.  This limits the opportunities in Python for
performance optimizations based on type information  compared to languages that
do allow or require the specification of types.

Type inference is a way to derive the needed type information for optimizations
based on types without requiring type specifications in the source code of a
program.  By inferring the types of variables based on flow control and other
hints in a program, the type information can be derived and used in a
constructive manner.

This thesis is an exploration of implementing a type inference algorithm for
Python without changing the semantics of the language.  It also explores the
benefit of adding type annotations to method calls in order to garner more type

More information about the Python-announce-list mailing list