| This thesis develops telescoping-language technology for automatically generating high performance libraries from development code written in high-level languages, like Matlab. The generated library subroutines have pre-optimized variants based on possible uses of the library. Specifically, a specialized variant is generated for each possible type configuration on inputs to the library. This thesis develops an efficient graph-theoretical, constraint-based algorithm for inferring types in Matlab needed for translation into lower-level languages, optimization, and determination of which specialized variants to generate. The algorithm computes type jump functions, which allows it to infer types interprocedurally.; To illustrate the power of the technology, this thesis develops ARGen, a system which generates code equivalent to ARPACK, a Fortran linear algebra library, from its Matlab development code.; By accomplishing the type inferencing algorithm and ARGen, which uses it, this thesis provides a basis for a general system for telescoping languages. |