
I'm an Associate Professor and Associate Director of Research in the
Computer Science department at Heriot-Watt University.
News
- September 2024 Our paper on Cloaca, a hardware-based concurrent garbage
collection for lazy functional languages, has been accepted to the Haskell
Symposium 2024. link
- December 2023 Our paper on Heron, a custom graph reduction processor
core, has been accepted to IFL 2023. link
- June 2023 There is the possibility of funded PhD projects
for the EPSRC HAFLANG project, which is exploring hardware
implementations of functional languages. Email me with
inquiries.
Research
My research interests span Domain Specific Languages (my SPLV 2019 slides), parallel programming languages for HPC and System on Chip
processors, dataflow programming languages, high level FPGA languages,
and language/compiler/runtime system verification.
I am the principal investigator of the EPSRC project HAFLANG 2022-2025
– FPGA based hardware implementations of functional languages. Our
project page is: http://haflang.github.io.
I am a co-investigator on two EPSRC projects: Serious Coding 2020-2023
– a game approach to security for the new code-citizens, and Border Patrol 2017-2022 – improving smart device security through type-aware
systems design.
My publications are listed here, as well as on Google Scholar and
DBLP.
PhD student supervision/co-supervision:
- Yukang Xie, Heriot-Watt University, custom processor architectures specialised
for functional programming languages, 2024-present. Works on the HAFLANG
project.
- Akilan Selvacoumar, Heriot-Watt University, heterogeneous parallel
computing, 2021-present.
- Cristian Sestito, visiting PhD student 2021-2022, University of
Calabria, Italy, neural network compression for FPGAs.
- Fraser Garrow, Heriot-Watt University, evolutionary algorithmic
optimisation of neural networks, 2020-present, with Michael Lones.
- Blair Archibald, University of Glasgow, C++ algorithmic skeletons
for scalable parallel tree search, 2015-2018, with Phil Trinder and
Patrick Maier. thesis
If you are interested in a PhD in my research areas, please get in
touch.
I'm a member of several research groups: Dependable Systems Group,
Robotics Lab and Lab for AI Verification.
I am co-chair of the ACM Workshop on Real World Domain Specific Languages (RWDSL) and a PC member/review for JFP, TyDe, IEEE IPDPS,
SBLP, IEEE Access, ICANN, IEEE TPDS, CPE, JSPS, MycroftFest23.
Teaching
I teach or have taught:
- Programming Languages (F28PL)
- Distributed and Parallel Technologies (F20DP/F21DP)
- Introduction to Data Structures and Algorithms (F28SG)
- Hardware-Software Interface (F28HS)
Using GitLab to support Computer Science education:
Programming music with assembly code:
Short bio
- 2022 - present: Associate Professor, School of Mathematical and Computer Sciences (MACS), Heriot-Watt University.
- 2018 - 2022: Assistant Professor, School of Mathematical and Computer Sciences (MACS), Heriot-Watt University.
- 2021: Fellow of the Higher Education Academy.
- 2017 - 2018: Research Fellow (Border Patrol EPSRC project),
Heriot-Watt University.
- 2016 - 2017: Research Fellow (The Integration and Interaction of Multiple Mathematical Reasoning Processes EPSRC Grant), Heriot-Watt University.
- 2016 - 2017: Research Fellow (Rathlin EPSRC project), Heriot-Watt University.
- 2016 - 2016: Visiting scholar, EPFL, Switzerland.
- 2013 - 2016: Research Associate (Rathlin EPSRC project), Heriot-Watt University.
- 2013 - 2013: Senior Haskell Software Engineer, Parallel Scientific, American startup.
- 2010 - 2013: Research Associate (SerenA EPSRC project), Heriot-Watt University.
- 2010 - 2013: PhD student, Computer Science (thesis and details), Heriot-Watt University.
- 2004 - 2010: MEng student, Software Engineering, Heriot-Watt University.
If you are a professional writer – i.e., if someone else is getting paid to
worry about how your words are formatted and printed – emacs outshines all other
editing software in approximately the same way that the noonday sun does the
stars. It is not just bigger and brighter; it simply makes everything else
vanish. – Neal Stephenson, In the Beginning was the Command Line.