To: J3 J3/19-170 From: Van Snyder Subject: Specifications and syntax for container support Date: 2019-June-14 References: 04-153 04-383r1 19-120 19-121 19-122 19-123 19-167 19-168 19-169 Two PDF papers, 19-168 Containers, and 19-169 Coroutines and Iterators, together provide specifications and syntax to satisfy all but one of the requirements for containers that are specified in paper 19-167 19-168 satisfies the following requirements for containers specified in 19-167: o A representation for their persistent state, o Methods to initialize their persistent state, e.g.: - Initial size (e.g. for a stack or queue), - Internal parameters (e.g., dimensions of a sparse matrix), o Methods to enter or update elements, o Methods to retrieve a specified element or a pointer associated with one, o Methods to retrieve a subset of elements, o Methods to finalize their persistent state, and o Ability to declare or allocate more than one container object without physically copying program text, or effectively copying it using a device such as a parameterized module, macro, template or INCLUDE statement. 19-169 satisfies the following requirement specified in 19-167: o Methods to traverse the elements or a subset thereof. Support for generic programming: parameterized modules, macros, or templates, will satisfy the following requirement specified in 19-167: o Ability to instantiate a framework for a representation for a persistent state, and associated methods, for specified type and kind. 19-168 is a revision 19-123, assigned to JOR at meeting 218, processed by JOR without discussion with the author, offered for vote on Thursday, and processed with essentially no discussion. It was clear that neither JOR nor the committee as a whole understood the paper, and insufficient time was allowed for discussion. 19-169 is substantially the same as 19-121, which was classified before meeting 218 as "info," and was not processed, discussed, or voted. I did not submit it as a joke or only for information. It was not uploaded to the Tutorials directory. It is a serious proposal to support containers. Nonnormative material referenced in 19-168 has been placed on the server in the Tutorials directory, using file names that include the authors' names: R. M. Burstall and R J. Popplestone, "POP-2 Reference Manual", Department of Machine Intelligence and Perception, University of Edinburgh. Charles M. Geschke and James G. Mitchell, "On the problem of uniform references to data structures," IEEE Transactions on Software Engineering SE-2, 1 (June 1975) 207-210. David Parnas, "On the criteria to be used in decomposing systems into modules," Comm. ACM 15, 12 (December 1972) 1053-1058. D. T. Ross, "Uniform referents: An essential property for a software engineering language," in Software Engineering 1 (J. T. Tou, Ed.), Academic Press, (1970) 91-101. R. D. Tennent, "Principles of Programming Languages" (C. A. R. Hoare Ed.), Prentice-Hall International Series in Computer Science (1981), ISBN:0137098731, page 114. These references will be especially helpful to understand the motivation for the design of facilities describee in 19-168.