skip to primary navigation skip to content

Tools for writing models: Software for the future

Tools for writing models: Software for the future

Much research in computer science has been carried out to aid the development of efficient, correct, and easily extendible computer programs. This project is a collaborative effort between the Cambridge Computer Laboratory and the Cambridge Centre for Climate Science, aiming to apply state-of-the-art programming research to facilitate the development of advanced climate models.

Scientific modelling and mainstream software engineering share many of the same software quality goals, such as verifiability, readability, and separation of concerns. These properties are highly beneficial for the use, maintenance and extension of models, often by those who are not the original creators, and for the scientific process, in communicating experimental methods and providing open-access to models. Achieving these goals (without also compromising performance) has been the focus of much programming research in recent years. For example, functional programming languages can provide a structured programming approach which can capture more of the programmer intent than Fortran or C++, allowing a greater separation between a model's specification and the details of its execution. This separation aids program understanding, extension, verification, and automatic adaption to different modes of execution (e.g. distributed, parallel) without requiring a fundamental reworking of the program.

We seek to combine these language approaches with research in Human Computer Interaction and End-User Programming in order to improve the effectiveness of new, or external, researchers needing to utilise or extend existing models.

This project is being coordinated by Dr Andrew Friend in Geography and Dr Andy Rice in the CL, and is receiving funding from the CL.


Figure from Graham Hutton, University of Nottingham, showing Haskell code for quicksort using recursion.