\matlab is a popular dynamic array-based language commonly used by
students, scientists and engineers who appreciate the interactive
development style, the rich set of array operators, the extensive
builtin library, and the fact that they do not have to declare static
types. Even though these users like to program in \matlab, their
computations are often very compute-intensive and are better suited for
emerging high performance computing systems. This thesis reports on \mixten, a
source-to-source compiler that automatically translates \matlab programs
to \xten, a language designed for ``Performance and Productivity at Scale";
thus, helping scientific programmers make better use of high performance
computing systems.

There is a large semantic gap between the array-based dynamically-typed nature 
of \matlab and the object-oriented, statically-typed, and high-level array
abstractions of \xten.   This thesis addresses the major challenges that
must be overcome to produce sequential \xten code that is competitive with
state-of-the-art static compilers for \matlab which target more
conventional imperative languages such as C and Fortran.   Given that
efficient basis, the thesis then provides a translation for the \matlab
\texttt{parfor} construct that leverages the powerful concurrency
constructs in \xten. 

The \mixten compiler has been implemented using the McLab compiler
tools, is open source, and is available both for compiler researchers
and end-user \matlab programmers.   We have used the implementation to
perform many empirical measurements on a set of 17 \matlab benchmarks.
We show that our best \mixten-generated code is significantly faster
than the de facto Mathworks' \matlab system,  and that our results are
competitive with state-of-the-art static compilers that target C and
Fortran.   We also show the importance of finding the correct approach
to representing the arrays in \xten,  and the necessity of an
\emph{IntegerOkay}  analysis that determines which double variables
can be safely represented as integers.    Finally, we show that our
\xten-based handling of the \matlab \texttt{parfor} greatly outperforms
the de facto \matlab implementation. 
