The formal specification of abstract data types and their implementation in Fortran 90: Implementation issues concerning the use of pointers

D Maley*, PL Kilpatrick, EW Schreiner, NS Scott, GHF Diercksen

*Corresponding author for this work

Research output: Contribution to journalArticle

3 Citations (Scopus)


In this paper we continue our investigation into the development of computational-science software based on the identification and formal specification of Abstract Data Types (ADTs) and their implementation in Fortran 90. In particular, we consider the consequences of using pointers when implementing a formally specified ADT in Fortran 90. Our aim is to highlight the resulting conflict between the goal of information hiding, which is central to the ADT methodology, and the space efficiency of the implementation. We show that the issue of storage recovery cannot be avoided by the ADT user, and present a range of implementations of a simple ADT to illustrate various approaches towards satisfactory storage management. Finally, we propose a set of guidelines for implementing ADTs using pointers in Fortran 90. These guidelines offer a way gracefully to provide disposal operations in Fortran 90. Such an approach is desirable since Fortran 90 does not provide automatic garbage collection which is offered by many object-oriented languages including Eiffel, Java, Smalltalk, and Simula.

Original languageEnglish
Pages (from-to)167-180
Number of pages14
JournalComputer Physics Communications
Issue number1-2
Publication statusPublished - Oct 1996



Cite this