The science and engineering disciplines rely heavily on computer simulation as a tool for solving large, complex mathematical problems. The difficulty of creating scientific simulation code presents the need for a programming environment that is able to assist the programmer in the code development process. This paper describes a development methodology and a prototype implementation of a system that provides such assistance. Refiner, a programming environment for creating scientific simulators, provides expert users with online support for the entire development process, from mathematical modeling to low-level implementation details. Refiner is based on Posit, a high-level object-oriented modeling and programming language. Mathematical models are specified, and executable programs are then developed through the successive application of semantics-preserving program transformations. Code development is recorded in the form of a refinement tree structure where each path from root to leaf encodes a series of program transformations representing a single-solution strategy.

This software is also peer reviewed by journal TOMS.