Formal Constraints on Memory Management for Composite Overloaded Operations

The memory management rules for abstract data type calculus presented by Rouson, Morris & Xu [15] are recast as formal statements in the Object Constraint Language (OCL) and applied to the design of a thermal energy equation solver. One set of constraints eliminates memory leaks observed in comp...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Scientific programming 2006-01, Vol.14 (1), p.27-40
Hauptverfasser: Rouson, Damian W.I., Xu, Xiaofeng, Morris, Karla
Format: Artikel
Sprache:eng
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:The memory management rules for abstract data type calculus presented by Rouson, Morris & Xu [15] are recast as formal statements in the Object Constraint Language (OCL) and applied to the design of a thermal energy equation solver. One set of constraints eliminates memory leaks observed in composite overloaded expressions with three current Fortran 95/2003 compilers. A second set of constraints ensures economical memory recycling. The constraints are preconditions, postconditions and invariants on overloaded operators and the objects they receive and return. It is demonstrated that systematic run‐time assertion checking inspired by the formal constraints facilitated the pinpointing of an exceptionally hard‐to‐reproduce compiler bug. It is further demonstrated that the interplay between OCL′s modeling capabilities and Fortran′s programming capabilities led to a conceptual breakthrough that greatly improved the readability of our code by facilitating operator overloading. The advantages and disadvantages of our memory management rules are discussed in light of other published solutions [11,19]. Finally, it is demonstrated that the run‐time assertion checking has a negligible impact on performance.
ISSN:1058-9244
1875-919X
DOI:10.1155/2006/731428