Skip to main content

Incorporating Precise Garbage Collection in an Ada Compiler

  • Conference paper
  • 266 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4498))

Abstract

In recent years an increasing effort to develop garbage collectors for real-time applications has been undertaken by the Java community. Currently it seems appropriate to evaluate the effort required to integrate such a facility into Ada.

This paper presents an ongoing project to accomplish this goal by modifying the GNAT compiler to incorporate support for precise garbage collection. The approach taken can be immediately applied to current Ada 95 code, and allows coexistence of explicit and implicit deallocation. The text describes the extra code generated by a modified version of the front end and the corresponding run-time support for a mark-and-sweep collector.

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • AdaCore. GNAT Academic Program (2007), http://www.adacore.com/home/academia

  • Bacon, D.F., Cheng, P., Rajan, V.T.: The Metronome: A simpler approach to garbage collection in real-time systems. In: Meersman, R., Tari, Z. (eds.) On The Move to Meaningful Internet Systems 2003: OTM 2003 Workshops. LNCS, vol. 2889, pp. 466–478. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  • Bacon, D.F., Rajan, V.T.: Concurrent cycle collection in reference counted systems. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 207–235. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  • Bartlett, J.F.: Compacting garbage collection with ambiguous roots. Research Report 88/2, Western Research Laboratory, Digital Equipment Corporation (1988)

    Google Scholar 

  • Boehm, H.-J., Demers, A.J., Shenker, S.: Mostly parallel garbage collection. In: PLDI ’91: Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation, pp. 157–164. ACM, New York (1991)

    Chapter  Google Scholar 

  • Boehm, H.-J.: Space efficient conservative garbage collection (with retrospective). In: McKinley, K.S. (ed.) Best of PLDI, pp. 490–501. ACM, New York (1993)

    Google Scholar 

  • Boehm, H.-J., Weiser, M.: Garbage collection in an uncooperative environment. Software: Practice and Experiencie 18(9), 807–820 (1988)

    Article  Google Scholar 

  • Bollella, G., Brosgol, B., Furr, S., Hardin, D., Dibble, P., Gosling, J., Turnbull, M.: The Real-Time Specification for Java. Addison-Wesley, London (2000)

    Google Scholar 

  • Collins, G.E.: A method for overlapping and erasure of lists. Communications of the ACM 3(12), 655–657 (1960)

    Article  Google Scholar 

  • TimeSys Corp. RTSJ reference implementation. http://www.timesys.com/java/

  • Ellis, J.R., Detlefs, D.: Safe, efficient garbage collection for C++. In: John, R. (ed.) Proceedings of the 1994 USENIX C++ Conference, Cambridge, Massachusetts, pp. 143–178 (1994)

    Google Scholar 

  • Intermetrics Inc. and the MITRE Corporation. Annotated Ada Reference Manual with Technical Corrigendum 1. Language Standard and Libraries. ISO/IEC 8652:1995(E). (2000) http://www.adaic.org/standards/95aarm/AARM.PDF

  • Jones, R., Lins, R.: Garbage Collection: Algorithms for Automated Dynamic Memory Management. Wiley and Sons, New York (1996)

    Google Scholar 

  • McCarthy, J.L.: Recursive functions of symbolic expressions and their computation by machine, part I. Communications of the ACM 3(4), 184–195 (1960)

    Article  MathSciNet  MATH  Google Scholar 

  • Schmidt, W.J., Nilsen, K.D.: Performance of a hardware-assisted real-time garbage collector. In: William, J. (ed.) Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems. ACM SIGPLAN Notices, vol. 29, pp. 76–85 (1994)

    Google Scholar 

  • Siebert, F.: Hard real-time garbage-collection in the Jamaica virtual machine. In: RTCSA’99. Proceedings of the 6th International Workshop on Real-Time Computing and Applications Symposium, pp. 96–102. IEEE Computer Society Press, Los Alamitos (1999)

    Google Scholar 

  • Siebert, F.: Constant-time root scanning for deterministic garbage collection. In: Wilhelm, R. (ed.) CC 2001 and ETAPS 2001. LNCS, vol. 2027, pp. 304–318. Springer, Heidelberg (2001)

    Google Scholar 

  • Tofte, M., Talpin, J.-P.: Region-based memory management. Information and Computation 132(2), 109–176 (1997)

    Article  MathSciNet  MATH  Google Scholar 

  • Wilson, P.R.: Uniprocessor garbage collection techniques. In: Bekkers, Y., Cohen, J. (eds.) Memory Management, International Workshop (IWMM 92). LNCS, vol. 637, pp. 1–42. Springer, Heidelberg (1992)

    Google Scholar 

  • Zorn, B.G.: The measured cost of conservative garbage collection. Software: Practice and Experience 23(7), 733–756 (1993)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

García-Rodríguez, F., Miranda, J., Fortes Gálvez, J. (2007). Incorporating Precise Garbage Collection in an Ada Compiler. In: Abdennadher, N., Kordon, F. (eds) Reliable Software Technologies – Ada Europe 2007. Ada-Europe 2007. Lecture Notes in Computer Science, vol 4498. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-73230-3_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-73230-3_18

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-73229-7

  • Online ISBN: 978-3-540-73230-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics