40 Years of Computing at Newcastle

Department Technical Report Series No. 576

Numerical Software Development with Functional Languages

C.M. Angus

University of Newcastle upon Tyne. 1997.

Abstract

Functional programming languages such as Haskell allow numerical algorithms to be expressed in a concise, machine-independent manner that closely reflects the underlying mathematical notation in which the algorithm is expressed. Unfortunately the price paid for this level of abstraction is usually an increase in execution time and space usage.

Ongoing work towards the goal of developing efficient large-scale numerical software in a functional language will be described in two stages:

Use of the purely functional language Haskell for the development of a (problem/dimension)-independent finite element analysis system and the advantages of working in this style, focusing on such areas as the usefulness of Haskell-style type classes and the appropriateness of non-strict semantics in this area.

Lessons learned from experiences described above which contribute to design decisions, implementation techniques and necessary multi-parameter extensions to Haskell-style type classes for a functional language specialised to the area of numerical software development.


Department Technical Report Series - 1997
Department Technical Report Series Index
Contents Page - 40 Years of Computing at Newcastle
Technical Report Abstract No. 576, 30 June 1997