Skip to main content

Using C as a Compiler Target Language for Native Code Generation in Persistent Systems

  • Conference paper
Persistent Object Systems

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

Abstract

Persistent programming languages exhibit several requirements that affect the generation of native code, namely: garbage collection; arbitrary persistence of code, data and processes; dynamic binding; and the introduction of new code into a running system. The problems of garbage collection are not unique to persistent systems and are well understood: both code and data may move during a computation if a compacting collector is employed. However, the problems of garbage collection are exacerbated in persistent systems which must support garbage collection of both RAM resident and disk resident data. Some persistent systems support a single integrated environment in which the compiled code and data is manipulated in a uniform manner, necessitating that compiled code be stored in the object store. Furthermore, some systems assume that the entire state of a running program is resident in a persistent store; in these systems it may be necessary to preserve the state of a program at an arbitrary point in its execution and resume it later. Persistent systems must support some dynamic binding in order to accommodate change. Thus code must be capable of binding to arbitrary data at a variety of times. This introduces the additional complexity that code must be able to call code contained in the persistent store produced by another compilation. In this paper native code generation techniques using C as a target language for persistent languages are presented. The techniques described solve all of the problems described above. They may therefore be applied to any language with these or a subset of these features.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Albano, A., Cardelli, L. and Orsini, R. “Galileo: a Strongly Typed, Interactive Conceptual Language”, Association for Computing Machinery Transactions on Database Systems, vol 10, 2, pp. 230–260, 1985.

    Google Scholar 

  2. Brown, A. L., Carrick, R., Connor, R. C. H., Dearie, A. and Morrison, R. “The Persistent Abstract Machine”, Universities of Glasgow and St Andrews, Technical Report PPRR-59-88, 1988.

    Google Scholar 

  3. Carey, M., DeWitt, D. and McNaughton, J. “The 007 Benchmark”, SIGMOD, vol 5, 3, 1993.

    Google Scholar 

  4. Connor, R., Brown, A., Carrick, R., Dearie, A. and Morrison, R. “The Persistent Abstract Machine”, Proceedings of the Third International Workshop on Persistent Object Systems, Newcastle, Australia, Springer-Verlag, pp. 353–366 1989.

    Google Scholar 

  5. Cutts, Q. “Deviering the Benefits of Persistence to System Construction and Execution”, Ph.D. thesis, Computational Science, St Andrews, 1994.

    Google Scholar 

  6. Dearie, A. “Constructing Compilers in a Persistent Environment”, Universities of Glasgow and St Andrews, Technical Report PPRR-51-87, 1987.

    Google Scholar 

  7. Dearie, A. and Brown, A. L. “Safe Browsing in a Strongly Typed Persistent Environment”, The Computer Journal, vol 31, 6, pp. 540–545, 1988.

    Article  Google Scholar 

  8. Farkas, A. and Dearie, A. “The Octopus Model and its Implementation”, 17th Australian Computer Science Conferenc, Australian Computer Science Communications, vol 16, pp. 581–590, 1994.

    Google Scholar 

  9. Kernighan, B. W. and Ritchie, D. M. “The C programming language”, Prentice-Hall, 1978.

    Google Scholar 

  10. Matthes, F. and Schmidt, J. W. “The Type System of DBPL”, Proceedings of the Second International Workshop on Database Programming Languages, Portland, Oregan, Morgan Kaufmann, pp. 219–225, 1989.

    Google Scholar 

  11. Morrison, R., Brown, A. L., Connor, R. C. H. and Dearie, A. “The Napier88 Reference Manual”, University of St Andrews, Technical Report PPRR-77-89 1989.

    Google Scholar 

  12. Morrison, R., Dearie, A., Connor, R. C. H. and Brown, A. L. “An Ad-Hoc Approach to the Implementation of Polymorphism”, Transactions on Programming Languages and Systems, vol 13, 3, pp. 342–371, 1991.

    Article  Google Scholar 

  13. Peyton-Jones, S. “The implementation of functional languages”, Prentice-Hall 1987.

    Google Scholar 

  14. R. Stallman, R. “Using and Porting GNU CC”, Free Software Foundation, Technical Report 1991.

    Google Scholar 

  15. Sites, R. L. “Alpha Architecture Reference Manual”, Digital Press, 1992.

    Google Scholar 

  16. Stallman, R. 1993.

    Google Scholar 

  17. Sun Microsystems Inc. “The SPARC Architecture Manual, Version 7”, 1987.

    Google Scholar 

  18. Vaughan, F., Schunke, T., Koch, B., Dearie, A., Marlin, C. and Barter, C. “Casper: A Cached Architecture Supporting Persistence”, Computing Systems, vol 5, 3, California, 1992.

    Google Scholar 

  19. Weicker, R. P. “Dhrystone: A Synthetic Systems Programming Benchmark.”, vol 27, 10, Communications of the ACM, pp. 1013–1030, 1984.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1995 British Computer Society

About this paper

Cite this paper

Bushell, S.J., Dearle, A., Brown, A.L., Vaughan, F.A. (1995). Using C as a Compiler Target Language for Native Code Generation in Persistent Systems. In: Atkinson, M., Maier, D., Benzaken, V. (eds) Persistent Object Systems. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-2122-0_15

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-2122-0_15

  • Publisher Name: Springer, London

  • Print ISBN: 978-3-540-19912-0

  • Online ISBN: 978-1-4471-2122-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics