When changes are made to programs - to enhance their functionality, to improve performance, to migrate from one language or machine to another, or to convert a serial program to parallel form - there is no easy way to verify that the changes maintain program correctness. Checking the final result is not enough; potentially serious problems can be masked, nor do results alone indicate where the differences originated in the code.
The Matrix Comparison Facility (MCF) is a language - and machine-independent tool that facilitates the task of verifying that a converted or improved program produces results faithful to the original. The programmer records the contents of array slices at strategic locations in the code. These intermediate values can later be compared to corresponding values from a previous version of the program. Any difference between the two sets of values serves to indicate indirectly the extent to which the new program is proceeding as expected. MCF performs such comparisons automatically and displays the result in an easily understood form. It offers a set of pre-defined operators, allowing the user to perform the most common comparisons very quickly. Arbitrary comparison operators can also be defined by the user. A command line tool summarizes the total number of mismatches found and the magnitudes of the average and worst-case mismatches. A graphical version visualizes the differences between the two sets of array values, using color coding to reflect the magnitude of variance. The user can manipulate the visual display to obtain further information about the differences, or to change the nature of the comparison. In addition, the graphical tool can be used to simply visualize the contents of an array.
The design and implementation of MCF are available for royalty-free adoption and use for non-commercial purposes, by any public or private organization. Queries about licensing arrangements for commercial use of MCF should be directed to Cherri Pancake, firstname.lastname@example.org.
Back to Pancake home page