Daniel M. Berry
Cheriton School of Computer Science
University of Waterloo
Waterloo, ON, Canada
This talk is based on a paper written by the speaker and [his OR her] (delete the one corresponding to the deleted lecturer) spouse. The paper describes an experience by the authors as a programmer and a client respectively. The programmer applied the concepts of abstract data typing and strong typing to arrive at a complete, consistent specification of the client's program. The client's program was to do a simulation of a statistical experiment. The client was an expert in statistics, and the programmer was totally incompetent in statistics. Despite this gap, amazingly, the specifications were right the first time, and they did not undergo the usual modifications as the program itself was designed, implemented, tested, debugged, and accepted. The experience suggests a possible method for arriving at specifications based on the two above-mentioned concepts and suggests some desirable properties of specifications languages and their processors.