Adam T. Sampson

Learn More
Process-oriented programming is a design methodology in which software applications are constructed from communicating concurrent processes. A typical process-oriented design involves the composition of a large number of small isolated component processes. These concurrent components allow for the scalable parallel execution of the resulting application on(More)
Data-type generic programming can be used to traverse and manipulate specific parts of large heterogeneously-typed tree structures, without the need for tedious boilerplate. Generic programming is often approached from a theoretical perspective, where the emphasis lies on the power of the representation rather than on efficiency. We describe use cases for a(More)
Complex systems modelling and simulation is becoming increasingly important to numerous disciplines. The CoSMoS project aims to produce a unified infrastructure for modelling and simulating all sorts of complex systems, making use of design patterns and the process-oriented programming model. We provide a description of CoSMoS and present a case study into(More)
In studying complex systems, agent-based simulations offer the possibility of directly modelling components in an environment. However, the scientific value of agent-based simulations has been limited by inadequate scientific rigour. The paper focuses on agent-based simulations that are used in biological and bio-medical research. Starting from a review of(More)
When building simulations of complex systems the task of validation is often overlooked. Validation helps provide confidence in the simulation by exploring the link between the models that we build and the real complex system. We investigate software engineering validation techniques from outside the area of complex systems to assess their applicability for(More)
Concurrent process-oriented programming is a natural medium for simulating complex systems, particularly systems where many simple components interact in an environment (which may itself be complex). There is little guidance for engineering complex systems simulation. In the context of simulation work to support immunological research, we explore relevant(More)
As part of research towards the CoSMoS unified infrastructure for modelling and simulating complex systems, we review uses of definitional and descriptive models in natural science and computing, and existing integrated platforms. From these, we identify requirements for engineering models of complex systems, and consider how some of the requirements could(More)
The CoSMoS project aims to develop reusable tools and techniques for complex systems modelling and simulation. Using process-oriented software design techniques, we have built a concurrent model of continuous space, usable in a variety of complex systems simulations. In this paper, we describe how we refactored our space model to allow our simulations to(More)