Starkiller : a static type inferencer and compiler for Python
Name
57175336-MIT.pdf
Description
Full printable version
Size
425.13 KB
Format
Adobe PDF
Checksum (MD5)
654de4f856b3e7a46bbeb610ef987ad4
Author(s)
Salib, Michael, 1978-
Advisor(s)
Jonathan Bachrach.
Alternative Title
Static type inferencer for dynamic languages
Date Issued
2004
Publisher
Massachusetts Institute of Technology
Abstract
Starkiller is a type inferencer and compiler for the dynamic language Python designed to generate fast native code. It analyzes Python source programs and converts them into equivalent C++ programs. Starkiller's type inference algorithm is based on the Cartesian Product Algorithm but has been significantly modified to support a radically different language. It includes an External Type Description Language that enables extension authors to document how their foreign code extensions interact with Python. This enables Starkiller to analyze Python code that interacts with foreign code written in C, C++, or Fortran. The type inference algorithm also handles data polymorphism in addition to parametric polymorphism, thus improving precision. Starkiller supports the entire Python language except for dynamic code insertion features such as eval and dynamic module loading. While the system is not yet complete, early numeric benchmarks show that Starkiller compiled code performs almost as well as hand made C code and substantially better than alternative Python compilers.
Description
Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2004.
Includes bibliographical references (leaves 93-96).
This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections.
Subjects
Electrical Engineering and Computer Science.
MIT Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission.
Persistent DSpace Link