This Article 
 Bibliographic References 
 Add to: 
Respectful Type Converters
July 2000 (vol. 26 no. 7)
pp. 579-593

Abstract—In converting an object of one type to another, we expect some of the original object's behavior to remain the same and some to change. How can we state the relationship between the original object and converted object to characterize what information is preserved and what is lost after the conversion takes place? We answer this question by introducing the new relation, respects, and say that a type converter function $C: A \rightarrow B$respects a type $T$. We formally define respects in terms of the Liskov and Wing behavioral notion of subtyping; types $A$ and $B$ are subtypes of $T$. We explain in detail the applicability of respectful type converters in the context of the Typed Object Model (TOM) Conversion Service, built at Carnegie Mellon and used on a daily basis throughout the world. We also briefly discuss how our respects relation addresses a similar question in two other contexts: type evolution and interoperability.

[1] F. Bamberger, P. Ford, and J.M. Wing, Interoperability, chapter C.8, pp. 67-71, Interuniversity Communications Council, Inc. (EDUCOM), 1994.
[2] W. Brookes and J. Indulska, “A Type Management System for Open Distributed Processing,” Technical Report 285, University of Queensland, St. Lucia, Australia, 1994.
[3] L. Cardelli,“A semantics of multiple inheritance,” Information and Computation, vol. 76, pp. 138-164, 1988.
[4] S.M. Clamen, "Type Evolution and Instance Adaptation," Technical Report CMU-CS-92-133R, School of Computer Science, Carnegie Mellon Univ., 1992.
[5] S.J. Garland and J.V. Guttag,“An overview of LP, the Larch proof assistant,” Rewriting Techniques, 1989, pp. 137-151.
[6] D.C. Halbert and P.D. O'Brien, “Using Types and Inheritance in Object-Oriented Programming,” IEEE Software, vol. 4, no. 5, pp. 71-79, Sept. 1987.
[7] C.A.R. Hoare, “Proof of Correctness of Data Representations,” Acta Informatica, vol. 1, no. 1, pp. 271-281, 1972.
[8] J.J. Horning, J.V. Garland Guttag, S.J. Garland Guttag, K.D. Jones, A. Modet, and J.M. Wing, Larch: Languages and Tools for Formal Specification. New York: Springer-Verlag, 1993.
[9] B. Liskov, “Data Abstraction and Hierarchy,” SIGPLAN Notices, vol. 23, no. 5, pp. 17-34, 1988.
[10] B. Liskov and J.M. Wing, ”A Behavioral Notion of Subtyping,” ACM Trans. Programming Languages and Systems, vol. 16, no. 6, pp. 1,811–1,841, Nov. 1994.
[11] J. Ockerbloom, “Mediating among Diverse Data Formats,” Technical Report CMU-CS-98-102, Computer Science Dept., Carnegie Mellon Univ., Pittsburgh, Pa., Jan. 1998.
[12] S. Putz, “Design and Implementation of the System 33 Document Service,” Technical Report P93-00112, Xerox PARC, Palo Alto, Calif., 1993.
[13] J.M. Wing and J. Ockerbloom, “Respectful Type Converters for Mutable Types,” Foundations of Component Based Systems, G. Leavens and M. Sitaraman, eds., Cambridge Univ. Press, 1999.
[14] A.M. Zaremski, “Signature and Specification Matching,” PhD thesis, Technical Report CS-CMU-96-103, Computer Science Dept., Carnegie Mellon Univ., Jan. 1996.

Index Terms:
Type converters, object repository, distributed objects, subtype, object-oriented design, abstraction function, specifications, semantics, Larch, type evolution, interoperability.
Jeannette M. Wing, John Ockerbloom, "Respectful Type Converters," IEEE Transactions on Software Engineering, vol. 26, no. 7, pp. 579-593, July 2000, doi:10.1109/32.859529
Usage of this product signifies your acceptance of the Terms of Use.