A practical language and toolkit for high-integrity tools
Abstract This paper shows how a safe interface to heap storage, based on garbage collection as provided in implementations of pure functional languages, can be combined with imperative languages. It also shows how expressive notation from functional languages, such as algebraic data types and equational definition of functions with pattern matching, can be adopted. The paper argues that the resulting combination is appropriate for the construction of high-integrity tools, based on an assessment against the same criteria as have been used for assessing the suitability of imperative languages for producing high-integrity software.