Design and specification of iterators using the swapping paradigm
Weide, B.W.; Edwards, S.H.; Harms, D.E.; Lamb, D.A.
Software Engineering, IEEE Transactions on
Volume 20, Issue 8, Aug 1994 Page(s):631 - 643
Digital Object Identifier 10.1109/32.310672
Summary:How should iterators be abstracted and encapsulated in modern
imperative languages? We consider the combined impact of several factors
on this question: the need for a common interface model for user defined
iterator abstractions, the importance of formal methods in specifying
such a model, and problems involved in modular correctness proofs of
iterator implementations and clients. A series of iterator designs
illustrates the advantages of the swapping paradigm over the traditional
copying paradigm. Specifically, swapping based designs admit more
efficient implementations while offering relatively straightforward
formal specifications and the potential for modular reasoning about
program behavior. The final proposed design schema is a common interface
model for an iterator for any generic collection
View citation and abstract |