The C programming language
An improvement of the projection operator in cylindrical algebraic decomposition
ISSAC '90 Proceedings of the international symposium on Symbolic and algebraic computation
The design and evolution of C++
The design and evolution of C++
The design of the SACLIB/PACLIB kernels
Journal of Symbolic Computation - Special issue on design and implementation of symbolic computation systems
Testing stability by quantifier elimination
Journal of Symbolic Computation - Special issue: applications of quantifier elimination
Generic programming and the STL: using and extending the C++ Standard Template Library
Generic programming and the STL: using and extending the C++ Standard Template Library
The C++ standard library: a tutorial and reference
The C++ standard library: a tutorial and reference
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
On the criteria to be used in decomposing systems into modules
Communications of the ACM
The C++ Programming Language
C++ Templates
Selected Papers from the International Seminar on Generic Programming
Selected Papers from the International Seminar on Generic Programming
Concept Use or Concept Refinement: An Important Distinction in Building Generic Specifications
ICFEM '02 Proceedings of the 4th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
ISCOPE '98 Proceedings of the Second International Symposium on Computing in Object-Oriented Parallel Environments
SUCHTHAT - Generic Programming Works
Selected Papers from the International Seminar on Generic Programming
Requirement Oriented Programming
Selected Papers from the International Seminar on Generic Programming
A Generic Programming Environment for High-Performance Mathematical Libraries
Selected Papers from the International Seminar on Generic Programming
Generative Programming and Active Libraries
Selected Papers from the International Seminar on Generic Programming
QEPCAD B: a program for computing with semi-algebraic sets using CADs
ACM SIGSAM Bulletin
Design patterns for library optimization
Scientific Programming - POOSC '01 Workshop
New bounds for the Descartes method
Journal of Symbolic Computation
New bounds for the Descartes method
Journal of Symbolic Computation
Hi-index | 0.00 |
We present a memory management subsystem for the computer algebra library SACLIB that removes the potential for memory leaks or double deletes in applications using the system. The system encapsulates the management of arrays that are allocated on the heap or on the system stack. The system makes arrays responsible for their own memory management, and enables the compiler to prevent other parts of SACLIB from managing array memory. To prove that our memory module and all applications using it are leak free and double delete free we introduce a new iterator concept and implement a model of that concept using generic programming techniques such as template meta-programming. Our innovations reduce the amount of code responsible for array memory management from 10,000 lines of code to 2,000 lines of code. Using hardware performance counters we show optimizing compilers are capable of avoiding any runtime overhead.