Dimensional analysis and partial evaluation
Incorporating units of measure into a programming language is beneficial for dimensional analysis and error detection. One of the methods of doing this is to use the abstraction facilities of an existing programming language. In this thesis, I present the design of a units package for manipulating units of measure along with numerical values for the Safer$\sb-$C language and discuss methods of using partial evaluation to improve the performance of the units package. This work generalizes and enhances previous work and analysis and applies the new analysis to the Safer$\sb-$C programming language. In particular, it examines the use of partial evaluation to perform dimensional analysis. This work consists of three parts: (1) A survey of methods for incorporating units of measure into programming languages and research on partial evaluation for this purpose. (2) A presentation of a design for a units package and discussion of several important features of the package namely: dynamic dimensions, computation of rational powers, handling precision, and handling temperature computations. (3) A presentation of a technique of partial evaluation to achieve good performance for dimensional analysis. With partial evaluation, the units checking and computation can be done at compile time. The results of experiments show that my design of the units package is correct and that existing partial evaluation technology can be used to improve the efficiency of dimensional analysis.