ACM Home Page
Please provide us with feedback. Feedback
Borrow, copy or steal?: loans and larceny in the orthodox canonical form
Full text PdfPdf (2.09 MB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Vancouver, British Columbia, Canada
Pages: 65 - 83  
Year of Publication: 1998
ISBN:1-58113-005-8
Also published in ...
Author
Anthony J. H. Simons  Department of Computer Science, University of Sheffield, Regent Court, 211 Portobello Street, Sheffield, S1 4DP UK
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 22,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/286936.286948
What is a DOI?

ABSTRACT

Dynamic memory management in C++ is complex, especially across the boundaries of library abstract data types. C++ libraries designed in the orthodox canonical form (OCF) alleviate some of the problems by ensuring that classes which manage any kind of heap structures faithfully copy and delete these. However, in certain common circumstances, OCF heap structures are wastefully copied multiple times. General reference counting is not an option in OCF, since a shared body violates the intended value semantics; although a copy-on-write policy can be made to work with borrowed heap structures. A simpler ownership policy, based on larceny, allows low-level memory manager objects to steal heap structures from temporary variables, in properly isolated circumstances. Various strategies for regulating theft are presented, ranging from pilfer-constructors to locks on heap data. Larceny has similarities with other transfer of ownership patterns, but is more a core implementation technique designed to improve the efficiency and effectiveness of OCF-conformant libraries.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
Alme97
P S Almeida, "Balloon types: controlling sharing of state in data types", Proc. l lth European Conf. Object-Oriented Prog. (1997), Springer Verlag, 32-59.
 
Booc94
 
BrLo97
 
CABD94
 
Carg96
 
Colv98
G Colvin, "Why is auto_ptr defined the way it is?", The comp.std.c++ FAQ, question C2, http.'//real ity. s g i. com/auste rn_mti/std-c + + /faq.html, 13 May (1998).
 
Cope92
 
GHJV95
 
GOP90
HLHW92
Hogg91
 
Hors95
 
Lea 93
D Lea, "The GNU C++ Library", C++ Report, June (1993); reprinted in {Lipp96}; revised as: http://gee.cs.oswego.edu/dl/libg+ +paper/ libg++/libg++.html, (1995).
 
Lea96
 
Lipp96
 
Meye92
 
Mins96
 
Rati93
Rational, C++ Booch Components Class Catalog, version 2.3 (1993), Rational.
 
Rogu95
Rogue Wave, Tools.h++ Foundation Class Library for C++ Programming, version 6 (1995), Rogue Wave Software, Inc.
 
SaCa96
 
SBGL91
 
Stee86
G L Steele, The Common Lisp Reference Manual (1986), Digital Press.
 
StLe94
A Stepanov and M Lee, "The standard template library", Technical Report, Hewlett- Packard Laboratories, May (1994).
 
Stro91
 
VCK96
 
Wild96
F Wild, "Instantiating code patterns", Dr Dobb's Journal, June (1996), 72.


Collaborative Colleagues:
Anthony J. H. Simons: colleagues