Correctly detecting intrinsic type errors in typeless languages such as MATLAB

Among the main impediments that languages such as MATLAB and APL present to a compiler is the lack of an explicit declaration for a variable's type, The determination of this important attribute could allow a compiler to generate more efficient code, and is a problem that has been extensively studied in the past. This paper revisits this problem but unlike prior efforts, the objective is a uniform approach to type estimation that also accommodates type incorrect programs in a way that facilitates stronger type error detection through the exact localization of the type error at run time. We also show how our methodology makes it possible to further reduce the run-time overhead due to type conformability checking. The techniques are clearly demonstrated by applying them to deduce the intrinsic types of program variables in the MATLAB language.