Chris Brown

Lecturer in Computer Science


Tel: +44 (0) 1334 461624                                       



Room 1.06

School of Computer Science

University of St Andrews

KY16 9SX

Research Interests

My research ambition is focussed around building new tools and techniques to make it easier and more accessible, through the use of refactoring technology, for application programmers to develop multi-core software. 

My area of expertise lies in refactoring, programming languages, including functional programming, parallel programming, programming language design (including semantics, and formal reasoning), compilers and GPU programming. Based on the research that I undertook as part of my PhD, I have developed new refactoring tools and techniques for parallel computing systems, for a variety of languages, including C/C++, Haskell and Erlang. These provide software developers with much-needed tool capabilities to allow them to easily and effectively exploit modern multi-core hardware, enabling their applications to run faster, safer and with less development effort and expertise. 

I am strongly active amongst the programming language and parallelism communities, where I contribute heavily to the design and implementation of refactoring tools and compiler technology (leading to two refactoring tools, HaRe, for Haskell and ParaFormance, for C/C++); parallel programming (including a new parallel skeleton library for Erlang, Skel); GPU programming; and the design, implementation and application of functional programming languages.


My publications can be found on PURE, Google Scholar and Research Gate (but I don’t use it very often).

Twitter: @chrismarkbrown

Projects and Tools

TeamPlay - Time, Energy and security Analysis for Multi/Many-core heterogenous PLAtforms 

Teamplay is a three-year research project funded by the EU Horizon 2020 research and innovation programme.

The TeamPlay project aims to develop new, formally-motivated, techniques that will allow execution time, energy usage, security, and other important non-functional properties of parallel software to be treated effectively, and as first- class citizens. We will build this into a toolbox for developing highly parallel software for low-energy systems, as required by the internet of things, cyber-physical systems etc.

ParaFormance is a refactoring tool-suite to aid C and C++ developers write programs for multi-core systems.

Postgraduate Students

I am currently working with Yasir Alguwaifli on researching into heuristic and MOO techniques for energy profiling in multi-cores.

I am very keen to find research students who will work me on any of these topics:

  1. -refactoring multi-core

  2. -refactoring for energy-aware systems

  3. -energy-aware patterns and skeletons

  4. -non-functional properties of time, energy and security

  5. -program transformation

  6. -formal reasoning of refactoring systems and/or parallel programming

  7. -dependent types and refactoring

If you are interested in studying for a PhD or postgraduate study, please get in touch.


I am module co-ordinator for CS4201, Programming Language Design and Implementation and CS4204, Concurrency and Multicore Architectures.

I am very keen to supervise undergraduate and MSc level dissertation projects. Please get in touch if you are interested.