dwiggins@atsun.a-t.com (Don Dwiggins) (12/02/89)
In article <130200023@p.cs.uiuc.edu> johnson@p.cs.uiuc.edu writes: Since several people have misunderstood my position, I guess I didn't describe it very well. I am strongly in favor of separating specification from implementation as much as possible. My complaint was against the claim that one of the main reasons for separating them was so that each specification could have a set of implementations, each of which had different performance characteristics. My observation is that, except for general purpose data structures, there doesn't seem to be much need for a component to have a variety of implementations that vary in performance characteristics. To me, the "variation in performance characteristics" is a major reason for having multiple implementations. The variation can occur for several reasons, one of which is a difference in the algorithms used. In choosing a component implementation, I will probably want to have a choice of (e.g.) memory-speed tradeoffs. There's another interesting issue here. Given that the spcification language doesn't comment on performance characteristics, how are component suppliers and consumers to communicate about these matters? For example, should there be a (semi-)formal language for this purpose, or are English descriptions enough? What needs to be expressible in this language? As an example, Johnson's example of a user interface module seems to imply that the user-visible characteristics should be described either in the specification language or in the putative "performance language". One could envision the need to talk about secondary storage use, realtime issues, interprocess characteristics, etc. In another message, Bill Wolfe writes: [ P.S. -- Ralph Johnson and I are having an interesting discussion of specification vs. implementation topics via e-mail ... I'd be interested in a summary of that discussion at some point, by either (or both) of you. -- Don Dwiggins "Solvitur Ambulando" Ashton-Tate, Inc. dwiggins@ashtate.a-t.com dwiggins@ashtate.uucp
amull@Morgan.COM (Andrew P. Mullhaupt) (12/06/89)
Has any work been done on specifying lower bounds on performance and upper bounds on resource demands for implementations? Engineers often need to distinguish between feasible and infeasible implementations on the basis of cost. One can even conceive of cases where the resource in question is program development time, which might skew towards using 'off the shelf' components as opposed to end-use specifications which try to conserve run-time resources. Later, Andrew Mullhaupt