Skip to main content

A Preprocessor Approach to Persistent C++

  • Conference paper
  • 59 Accesses

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Atkinson, M. P., Buneman, O.P.,”Types and Persistence in Database Programming Languages”, ACM Computing Surveys, 19:2, June 1987.

    Google Scholar 

  2. Agrawal, R. and Gehani, N.,”Design of the Persistence and Query Processing Facilities in O++: The Rationale”,Data Engineering 12:3, Sept. 1989.

    Google Scholar 

  3. Atwood, T.,”Two Approaches to Adding Persistence to C++”. In Implementing Persistent Object Bases, 1990.

    Google Scholar 

  4. 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.

    Article  Google Scholar 

  5. 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.

    Google Scholar 

  6. Deux, O. et al.”The 02 System”,Comm. of the ACM, 34:10, Oct. 1991.

    Article  Google Scholar 

  7. Evrendilek, C., Dogac, A., and Gesli, T.,”A Preprocessor Approach to Persistent C++”, TUBITAK Software R&D Center, Tech. Rep. 94–2, February 1994.

    Google Scholar 

  8. Lamb, C., Landis, G., Orenstein, J. and Weinreb, D.,”The ObjectStore Database System”,Comm. of the ACM, Oct. 1991.

    Google Scholar 

  9. Richardson, J. and Carey, M.,”Persistence in the E language: Issues and Implementation”, Software-Practice & Experience, Vol. 19, Dec. 1989.

    Google Scholar 

  10. Saygin, Y.,”MOODS Storage System”, Ms Thesis, Dept. of Computer Eng., Middle East Technical University, August 1992.

    Google Scholar 

  11. Schuh, D., Carey, M. and Dewitt D.,”Persistence in E Revisited”, in Implementing Persistent Object Bases, 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics