Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples
Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples
The T Experiments: Errors In Scientific Software
IEEE Computational Science & Engineering
How Goes CSE? Thoughts on the IEEE CS Workshop at Purdue
IEEE Computational Science & Engineering
Tomorrow's Weather Forecast: Automatic Code Generation for Atmospheric Modeling
IEEE Computational Science & Engineering
Object Oriented Programming Via FORTRAN 90/95
Object Oriented Programming Via FORTRAN 90/95
New assertion concepts for self-metric software validation
Proceedings of the international conference on Reliable software
The Object Constraint Language: Getting Your Models Ready for MDA
The Object Constraint Language: Getting Your Models Ready for MDA
Avoiding memory leaks with derived types
ACM SIGPLAN Fortran Forum
Memory leaks in derived types revisited
ACM SIGPLAN Fortran Forum
The science of deriving dense linear algebra algorithms
ACM Transactions on Mathematical Software (TOMS)
A historical perspective on runtime assertion checking in software development
ACM SIGSOFT Software Engineering Notes
Dynamic Memory De-allocation in Fortran 95/2003 derived type calculus
Scientific Programming
How to Express C++ Concepts in Fortran90
Scientific Programming
A grid-free abstraction of the Navier-Stokes equations in Fortran 95/2003
ACM Transactions on Mathematical Software (TOMS)
A grid-free abstraction of the Navier-Stokes equations in Fortran 95/2003
ACM Transactions on Mathematical Software (TOMS)
Towards analysis-driven scientific software architecture: The case for abstract data type calculus
Scientific Programming - Complexity in Scalable Computing
Design patterns for multiphysics modeling in Fortran 2003 and C++
ACM Transactions on Mathematical Software (TOMS)
Hi-index | 0.00 |
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.