Abstract
In conventional object oriented programming languages, objects are transient, that is they are destroyed upon program termination. Storing objects using explicit file access methods may cause objects to lose their manipulation and access semantics since the objects with different declarations may have the same storage representation. In this work persistence is added to C++ in DOS environment through a preprocessor and a class library developed in C++, such that the access and manipulation semantics of objects are preserved. The new language is called C**. The disk management of objects declared as persistent are automatically handled by the system through a virtual memory management emulation. Persistency is implemented as a storage class that is completely orthogonal to type. In other words, persistency is a property of objects, not their classes. Language changes are kept to a minimum, thus among the existing persistent C++ implementations, C** requires the minimum coding effort. Furthermore objects of any complexity with arbitrary level of pointer indirections to any type of object is supported. As a result, objects are stored on disk as they are represented in memory. Upward compatibility with C++ is preserved. The hybrid object identifier (OID) mechanism implemented in C** enables dynamic clustering and reduction in the object table size. Although there are several other persistent C++ implementations, the implementation technique of C** is original in that it provides the user with transparent type modifications and uses operator overloading extensively in realizing persistency. To the best of our knowledge C** is the first persistent C++ implementation on DOS with persistence as a storage class.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Atkinson, M. P., Buneman, O.P.,”Types and Persistence in Database Programming Languages”, ACM Computing Surveys, 19:2, June 1987.
Agrawal, R. and Gehani, N.,”Design of the Persistence and Query Processing Facilities in O++: The Rationale”,Data Engineering 12:3, Sept. 1989.
Atwood, T.,”Two Approaches to Adding Persistence to C++”. In Implementing Persistent Object Bases, 1990.
Chou, H-T., DeWitt, D. J., Katz, H.R., and Klug, A.C.,”Design and Implementation of the Wisconsin Storage System”,Software Practice and Experience, 15, pp. 943–962, 1985.
Carey, M., Dewitt, J. D., Richardson E. J., Shekita J. E.,”Storage Management for Objects in EXODUS”, In Object-Oriented Concepts, Databases, and Applications, W. Kim and F. Lochovsky, eds., Addison-Wesley, 1989.
Deux, O. et al.”The 02 System”,Comm. of the ACM, 34:10, Oct. 1991.
Evrendilek, C., Dogac, A., and Gesli, T.,”A Preprocessor Approach to Persistent C++”, TUBITAK Software R&D Center, Tech. Rep. 94–2, February 1994.
Lamb, C., Landis, G., Orenstein, J. and Weinreb, D.,”The ObjectStore Database System”,Comm. of the ACM, Oct. 1991.
Richardson, J. and Carey, M.,”Persistence in the E language: Issues and Implementation”, Software-Practice & Experience, Vol. 19, Dec. 1989.
Saygin, Y.,”MOODS Storage System”, Ms Thesis, Dept. of Computer Eng., Middle East Technical University, August 1992.
Schuh, D., Carey, M. and Dewitt D.,”Persistence in E Revisited”, in Implementing Persistent Object Bases, 1990.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1996 British Computer Society
About this paper
Cite this paper
Evrendilek, C., Dogac, A., Gesli, T. (1996). A Preprocessor Approach to Persistent C++. In: Eder, J., Kalinichenko, L.A. (eds) Advances in Databases and Information Systems. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-1486-4_16
Download citation
DOI: https://doi.org/10.1007/978-1-4471-1486-4_16
Publisher Name: Springer, London
Print ISBN: 978-3-540-76014-6
Online ISBN: 978-1-4471-1486-4
eBook Packages: Springer Book Archive