An entity in the real world may obtain and lose its roles, or aspects, agai
n and again with time. For modeling such dynamic changes of aspects, object
s having multiple types, or multiple-type objects, are essential to persist
ent programming languages. In this paper, we introduce multiple-type object
s, and show a method of implementing them in an enhanced C++ persistent pro
gramming language called INADA, Any persistent objects in INADA may obtain
any type at any time the type is needed, and may lose any unnecessary types
dynamically. We also present a performance study in which the performance
penalty caused by the introduction of multiple-type objects was examined, C
opyright (C) 2000 John Wiley & Sons, Ltd.