Data abstraction and object-oriented programming in C++
Data abstraction and object-oriented programming in C++
Effective C++: 50 specific ways to improve your programs and designs
Effective C++: 50 specific ways to improve your programs and designs
Advanced C++ programming styles and idioms
Advanced C++ programming styles and idioms
Hermes: a language for distributed computing
Hermes: a language for distributed computing
The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
Islands: aliasing protection in object-oriented languages
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
The Geneva convention on the treatment of object aliasing
ACM SIGPLAN OOPS Messenger
Object-oriented development: the fusion method
Object-oriented development: the fusion method
Object-oriented analysis and design with applications (2nd ed.)
Object-oriented analysis and design with applications (2nd ed.)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Mastering object-oriented design in C++
Mastering object-oriented design in C++
Pattern languages of program design 2
Pattern languages of program design 2
Localized ownership: managing dynamic objects in C++
Pattern languages of program design 2
Resource exchanger: a behavioral pattern for low-overhead concurrent resource management
Pattern languages of program design 2
C++ gems
Concurrent Programming in Java: Design Principles and Patterns
Concurrent Programming in Java: Design Principles and Patterns
Developing Professional Applications; For Windows 95 and NT Using MFC, with CD-ROM
Developing Professional Applications; For Windows 95 and NT Using MFC, with CD-ROM
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
Raw pointers in application classes of C++ considered harmful
ACM SIGPLAN Notices
Exploiting regularity of user-defined types to improve precision of program analyses
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Summary-based data-flow analysis that understands regular composite objects and iterators
ACM SIGAPP Applied Computing Review
Hi-index | 0.00 |
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.