Lecturer in Computer Science at the University of St Andrews, Scotland
Christopher Brown
Lecturer in Computer Science
Dr Christopher Brown
Room 1.06
Jack Cole building
School of Computer Science
University of St Andrews
Fife
KY16 9SX
Tel: +44 (0) 1334 461624
Email: cmb21 \at st-andrews.ac.uk
News
Research
My publications can be found on PURE, Google Scholar and Research Gate.
Twitter: @chrismarkbrown
My main area of research is in Programming Languages: refactoring, parallelism, semantics, compilers. I am a member of the Programming Languages Group at St Andrews.
- Parallel Programming
-
Parallel programming, tools, languages, compilers, run-time systems, libraries, algorithms, schedulers, GPUs, energy-aware parallelism...
-
Semantics and verification of parallel programs
-
Parallel pattern (and skeleton) libraries
-
Parallelism safety
-
Removal of legacy concurrency
- Refactoring
-
Transforming sequential programs into parallel versions
-
Proving correctness and general soundness of refactoring and program transformation, using verification techniques such as dependent types
-
Building refactoring tools to help developers write parallel programs
-
Optimising programs for energy efficiency, using compiler and refactoring techniques
- Programming Languages
- Compilers, static semantics, code generation, instruction selection
- Non-functional properties such as energy-efficiency
- Semantics of programming languages
- Correctness, verification and general soundness of compilers
Current projects and activities:
-
Energise: Refactorings and Skeletons for Energy-Aware Applications on High-Performance Embedded Systems (EPSRC)
EPSRC project. April 2021 - March 2024.
The Energise project aims to develop new, formally-motivated, refactorings and transformations that reduce energy consumption for embedded multi-core devices.
This includes implementing refactorings for target languages such as C; proving general soundness of the refactorings using e.g. dependent types; developing new programming abstractions (skeletons) for abstracting common energy-reducing programming patterns; running experiments; writing proofs of correctness, etc.
-
TeamPlay:
TeamPlay - Time, Energy and security Analysis for Multi/Many-core heterogenous PLAtforms (EU - Horizon 2020)
EU Horizon 2020 project. January 2018 - June 2021.
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.
Open-Source Software:
- Skel:
Skel is a parallel programming library for Erlang that implements common parallel patterns and skeletons.
- ParaFormance:
A refactoring tool suite for developing parallel applications in C and C++.
- CSL: Contract Specification Language is a library implented in Idris to allow developers to reason about non-functional properties of their C and C++ applications.
Postgraduate Research and Students
I am currently working with:
- Amaal Alhejaily on refactoring for reducing energy consumption.
- Yasir Alguwaifi on researching into meta-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:
- refactoring multi-core
- refactoring for energy-aware systems
- energy-aware patterns and skeletons
- non-functional properties of time, energy and security
- program transformation
- formal reasoning of refactoring systems and/or parallel programming
- dependent types and refactoring
- formal semantics of programming languages
- parallel programming
If you are interested in studying for a PhD or postgraduate study, please get in touch.
Teaching
Undergraduate Modules:
-
CS4201: Programming Language Design and Implementation (Autumn 2019- )
-
CS4204: Concurrency and Multi-Core Architectures (Spring 2019- )
Admin
- I am Second Level Coordinator for Computer Science. Email: second-coord-cs at st-andrews.ac.uk
Christopher Brown (cmb21 at st-andrews.ac.uk)