Building on rock: from mills'program functions to tabular notation

Whereas many popular software engineering approaches are built on newly invented, often poorly understood, notations and concepts, Harlan Mills was always careful to build his ideas on solidly understood mathematical concepts, concepts whose correctness was never in doubt. In a field where we are forced to deal with a variety of poorly designed programming notations, Harlan Mills was careful enough to formulate his ideas in ways that were independent of notation and hence applicable with a wide variety of notations.Harlan Mills' observation that the behavior of a deterministic program could be described by a function whose range and domain were sets of program states is typical of his contributions. He expressed the laws of programs by showing that they were the well-known laws of functions. His descriptions of how the function describing the behavior of a constructed program can be determined from the functions describing its components are valid for any imperative programming language.Building on this solid foundation, the Software Engineering Research Group at McMaster has been able to develop practical notations that can be used with many languages. We can extend the notation and apply it without moving away from the solid foundation that Harlan Mills constructed. The talk will describe how tabular notations are based on the program function model, variations of these notations, applications of these notations, and tools based on these notations.