publications

Year

2015

      Fence placement for legacy data-race-free programs via synchronization read detection Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming ACM 249--250
      Type-Based Allocation Analysis for Co-recursion in Lazy Functional Languages Programming Languages and Systems Springer Berlin Heidelberg 787--811
      Resource-Dependent Algebraic Effects Trends in Functional Programming Springer International Publishing 18--33
      Cross-platform Compilers for Functional Languages
      Embedded Domain Specific Languages in Idris
      The Idris Programming Language Central European Functional Programming School Springer International Publishing 115--186

2014

      Cost-directed refactoring for parallel erlang programs 42 Springer US 564--582
      Discovering parallel pattern candidates in erlang Proceedings of the Thirteenth ACM SIGPLAN workshop on Erlang ACM 13--23
      Agricultural reform: more efficient farming using advanced parallel refactoring tools Parallel, Distributed and Network-Based Processing (PDP), 2014 22nd Euromicro International Conference on IEEE 36--43
      Using erlang skeletons to parallelise realistic medium-scale parallel programs
      Cost-directed refactoring for parallel erlang programs 42 Springer US 564--582
      Discovering parallel pattern candidates in erlang Proceedings of the Thirteenth ACM SIGPLAN workshop on Erlang ACM 13--23
      Agricultural reform: more efficient farming using advanced parallel refactoring tools Parallel, Distributed and Network-Based Processing (PDP), 2014 22nd Euromicro International Conference on IEEE 36--43
      A Case Study in Coordination Programming: Performance Evaluation of \Concurrent Collections vs. S-Net\\ IEEE Computer Society\ 430--431
      Using erlang skeletons to parallelise realistic medium-scale parallel programs
      Functional programming and the megacore era Proceedings of the Thirteenth ACM SIGPLAN workshop on Erlang ACM 1--1
      Sequential decision problems, dependent types and generic solutions
      Programming and Reasoning with Side-Effects in IDRIS
      Idris: Implementing a Dependently Typed Programming Language Proceedings of the 2014 International Workshop on Logical Frameworks and Meta-languages: Theory and Practice ACM 2
      Agricultural reform: more efficient farming using advanced parallel refactoring tools Parallel, Distributed and Network-Based Processing (PDP), 2014 22nd Euromicro International Conference on IEEE 36--43
      Using erlang skeletons to parallelise realistic medium-scale parallel programs

2013

      Fast RMWs for TSO: semantics and implementation 48 ACM 61--72
      The paraphrase project: Parallel patterns for adaptive heterogeneous multicore systems Formal Methods for Components and Objects Springer Berlin Heidelberg 218--236
      Paraphrasing: Generating parallel programs using refactoring Formal Methods for Components and Objects Springer Berlin Heidelberg 237--256
      Easy composition of symbolic computation software using SCSCP: A new Lingua Franca for symbolic computation 49 Academic Press 95--119
      Mapping parallel programs to heterogeneous CPU/GPU architectures using a Monte Carlo Tree Search Evolutionary Computation (CEC), 2013 IEEE Congress on IEEE 2932--2939
      Space Exploration using Parallel Orbits: a Study in Parallel Symbolic Computing. PARCO 225--232
      The paraphrase project: Parallel patterns for adaptive heterogeneous multicore systems Formal Methods for Components and Objects Springer Berlin Heidelberg 218--236
      Resource analyses for parallel and distributed coordination 25 309--348
      Paraphrasing: Generating parallel programs using refactoring Formal Methods for Components and Objects Springer Berlin Heidelberg 237--256
      Easy composition of symbolic computation software using SCSCP: A new Lingua Franca for symbolic computation 49 Academic Press 95--119
      Statistical Performance Analysis of an Ant-Colony Optimisation Application in SNet
      Cloud Based Predictive Analytics: Text Classification, Recommender Systems and Decision Support Data Mining Workshops (ICDMW), 2013 IEEE 13th International Conference on IEEE 607--612
      Mapping parallel programs to heterogeneous CPU/GPU architectures using a Monte Carlo Tree Search Evolutionary Computation (CEC), 2013 IEEE Congress on IEEE 2932--2939
      How to be a successful thief Euro-Par 2013 Parallel Processing Springer Berlin Heidelberg 114--125
      Space exploration using parallel orbits: a study in parallel symbolic computing IOS Press
      Fault-tolerant Coordination of S-Net Stream-processing Networks HiPEAC\
      Repeating history: execution replay for Parallel Haskell programs Trends in Functional Programming Springer Berlin Heidelberg 231--246
      ParaPhrase workshop 2012 Euro-Par 2012: Parallel Processing Workshops Springer Berlin Heidelberg 368--369
      Idris, a general-purpose dependently typed programming language: Design and implementation 23 Cambridge University Press 552--593
      Programming and reasoning with algebraic effects and dependent types ACM SIGPLAN Notices 48 ACM 133--144
      Idris: general purpose programming with dependent types. PLPV 1--2
      Programming in Idris: a tutorial
      Dependent types for safe and secure web programming Proceedings of the 25th symposium on Implementation and Application of Functional Languages ACM 49
      Sequential decision problems, dependently typed solutions
      Mapping parallel programs to heterogeneous CPU/GPU architectures using a Monte Carlo Tree Search Evolutionary Computation (CEC), 2013 IEEE Congress on IEEE 2932--2939
      How to be a successful thief Euro-Par 2013 Parallel Processing Springer Berlin Heidelberg 114--125
      Space exploration using parallel orbits: a study in parallel symbolic computing IOS Press
      Repeating history: execution replay for Parallel Haskell programs Trends in Functional Programming Springer Berlin Heidelberg 231--246

2012

      Clarifying and compiling C/C++ concurrency: from C++ 11 to POWER ACM SIGPLAN Notices 47 ACM 509--520
      An axiomatic memory model for POWER multiprocessors Computer Aided Verification Springer Berlin Heidelberg 495--512
      Synchronising c/c++ and power ACM SIGPLAN Notices 47 ACM 311--322
      Fences in weak memory models (extended version) 40 Springer US 170--205
      A tutorial introduction to the ARM and POWER relaxed memory models
      Paraforming: forming parallel haskell programs using novel refactoring techniques Trends in Functional Programming Springer Berlin Heidelberg 82--97
      A language-independent parallel refactoring framework Proceedings of the Fifth Workshop on Refactoring Tools ACM 54--58
      Research directions in parallel functional programming Springer Science \& Business Media
      Paraforming: forming parallel haskell programs using novel refactoring techniques Trends in Functional Programming Springer Berlin Heidelberg 82--97
      SPOC: GPGPU programming through stream processing with OCaml 22 World Scientific Publishing Company 1240007
      Automatic amortised analysis of dynamic memory allocation for lazy functional programs ACM SIGPLAN Notices 47 ACM 165--176
      Resource-safe systems programming with embedded domain specific languages Practical Aspects of Declarative Languages Springer Berlin Heidelberg 242--257
      A language-independent parallel refactoring framework Proceedings of the Fifth Workshop on Refactoring Tools ACM 54--58
      Auto-tuning parallel skeletons 22 World Scientific Publishing Company 1240005
      Orchestrating computational algebra components into a high-performance parallel system 7 Inderscience Publishers Ltd 76--86
      Using load information in work-stealing on distributed systems with non-uniform communication latencies Euro-Par 2012 Parallel Processing Springer Berlin Heidelberg 155--166
      GUEST EDITORS NOTE: HIGH-LEVEL PROGRAMMING FOR HETEROGENEOUS AND HIERARCHICAL PARALLEL SYSTEMS 22 World Scientific Publishing Company 1202002
      Introduction to the Special Issue on Automatic Program Generation for Embedded Systems 77 Elsevier 81--82
      Functional Programming, Glasgow 1993: Proceedings of the 1993 Glasgow Workshop on Functional Programming, Ayr, Scotland, 5--7 July 1993 Springer Science \& Business Media
      Code-level timing analysis of embedded software: emsoft'12 invited talk session outline Proceedings of the tenth ACM international conference on Embedded software ACM 163--164
      Special Issue on Automatic Program Generation for Embedded Systems Elsevier
      Special Issue on High-level Programming for Heterogeneous and Hierarchical Parallel Systems World Scientific Publishing
      Review of: Access to knowledge in Egypt: new research on intellectual property, innovation, and development edited by Rizk Shaver 44
      Counter automata for parameterised timing analysis of box-based systems Foundational and Practical Aspects of Resource Analysis Springer Berlin Heidelberg 126--141
      Resource-safe systems programming with embedded domain specific languages Practical Aspects of Declarative Languages Springer Berlin Heidelberg 242--257
      Epic --- a library for generating compilers Trends in Functional Programming Springer Berlin Heidelberg 33--48
      Load balancing of irregular parallel applications on heterogeneous computing environments University of St Andrews
      Using load information in work-stealing on distributed systems with non-uniform communication latencies Euro-Par 2012 Parallel Processing Springer Berlin Heidelberg 155--166

2011

      Mathematizing C++ concurrency ACM SIGPLAN Notices 46 ACM 55--66
      Understanding POWER multiprocessors ACM SIGPLAN Notices 46 ACM 175--186
      Litmus: Running tests against hardware Tools and Algorithms for the Construction and Analysis of Systems Springer Berlin Heidelberg 41--44
      Nitpicking C++ concurrency Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming ACM 113--124
      3.30 RAO Memory Model 21
      An expression processor: a case study in refactoring Haskell programs Trends in Functional Programming Springer Berlin Heidelberg 31--49
      Improving your cash flow: the computer algebra shell Implementation and Application of Functional Languages Springer Berlin Heidelberg 169--184
      Why parallel functional programming matters: Panel statement Reliable Software Technologies-Ada-Europe 2011 Springer Berlin Heidelberg 201--205
      Engineering Concurrent Software Guided by Statistical Performance Analysis. PARCO 385--394
      Improving your cash flow: the computer algebra shell Implementation and Application of Functional Languages Springer Berlin Heidelberg 169--184
      Glasgow parallel haskell (gph) Encyclopedia of Parallel Computing Springer US 768--779
      Functional Languages Springer US 744--749
      Parallel functional languages Springer
      Engineering Concurrent Software Guided by Statistical Performance Analysis IOS Press
      IDRIS---: systems programming meets full dependent types Proceedings of the 5th ACM workshop on Programming languages meets program verification ACM 43--54
      An Epigram implementation

2010

      x86-TSO: a rigorous and usable programmer's model for x86 multiprocessors 53 ACM 89--97
      Ott: Effective tool support for the working semanticist 20 Cambridge University Press 71--122
      Fences in weak memory models Computer Aided Verification Springer Berlin Heidelberg 258--272
      Mathematizing C++ concurrency: The post-Rapperswil model
      Ott: Tool Support for Semantics User Guide version 0.20
      Clone detection and elimination for Haskell Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation ACM 111--120
      Ever-decreasing circles: a skeleton for parallel orbit calculations in Eden
      Static determination of quantitative resource usage for higher-order programs ACM Sigplan Notices 45 ACM 223--236
      Scrapping your inefficient engine: using partial evaluation to improve domain-specific language implementation ACM Sigplan Notices 45 ACM 297--308
      Correct-by-construction concurrency: Using dependent types to verify implementations of effectful resource usage protocols 102 IOS Press, Nieuwe Hemweg 6 B Amsterdam 1013 BG The Netherlands 145--176
      Easy composition of symbolic computation software: a new lingua franca for symbolic computation Proceedings of the 2010 International Symposium on Symbolic and Algebraic Computation ACM 339--346
      Granularity-aware work-stealing for computationally-uniform Grids Cluster, Cloud and Grid Computing (CCGrid), 2010 10th IEEE/ACM International Conference on IEEE 123--134
      Ever-decreasing circles: a skeleton for parallel orbit calculations in Eden
      Verification of Parametric Counter Automata in a Dependently Typed Language Citeseer
      Scrapping your inefficient engine: using partial evaluation to improve domain-specific language implementation ACM Sigplan Notices 45 ACM 297--308
      Correct-by-construction concurrency: Using dependent types to verify implementations of effectful resource usage protocols 102 IOS Press, Nieuwe Hemweg 6 B Amsterdam 1013 BG The Netherlands 145--176
      Verification of Parametric Counter Automata in a Dependently Typed Language Citeseer
      Granularity-aware work-stealing for computationally-uniform Grids Cluster, Cloud and Grid Computing (CCGrid), 2010 10th IEEE/ACM International Conference on IEEE 123--134

2009

      A better x86 memory model: x86-TSO Theorem Proving in Higher Order Logics Springer Berlin Heidelberg 391--407
      The semantics of x86-CC multiprocessor machine code ACM SIGPLAN Notices 44 ACM 379--391
      The semantics of Power and ARM multiprocessor machine code Proceedings of the 4th workshop on Declarative aspects of multicore programming ACM 13--24
      x86 Memory Model: x86-TSO
      A better x86 memory model: x86-TSO (extended version)
      Relaxed memory models must be rigorous
      A dependently typed programming language, with applications to foundational certified code systems ProQuest
      ``Carbon Credits'' for Resource-Bounded Computations Using Amortised Analysis FM 2009: Formal Methods Springer Berlin Heidelberg 354--369
      Low-pain, high-gain multicore programming in Haskell: coordinating irregular symbolic computations on multicore architectures Proceedings of the 4th workshop on Declarative aspects of multicore programming ACM 25--36
      Domain specific languages (DSLs) for network protocols (position paper) Distributed Computing Systems Workshops, 2009. ICDCS Workshops' 09. 29th IEEE International Conference on IEEE 208--213
      Hume cost analyses for imperative programs 2009
      Worst-case execution time analysis through types 13--17
      Comparing and optimising parallel haskell implementations for multicore machines Parallel Processing Workshops, 2009. ICPPW'09. International Conference on IEEE 386--393
      Multi-core parallelisation for Hume 2--4
      Automatic amortised resource analysis for hume Scotland: School of Computing Science, University of St Andrews
      Ensuring correct-by-construction resource usage by using full-spectrum dependent types
      Low-Pain, High-Gain Multicore Programming in Haskell
      ``Carbon Credits'' for Resource-Bounded Computations
      The Peter Landin prize 22 Springer US 305--312
      Towards Hume SIMD vectorisation Signal Processing Conference, 2009 17th European IEEE 2683--2687
      Domain specific languages (DSLs) for network protocols (position paper) Distributed Computing Systems Workshops, 2009. ICDCS Workshops' 09. 29th IEEE International Conference on IEEE 208--213
      Domain specific languages (DSLs) for network protocols
      Ensuring correct-by-construction resource usage by using full-spectrum dependent types
      Using Thread Granularity Information for Advanced Load Balancing in the GUM RTE for Parallel Haskell

2008

      Foundational certified code in the twelf metalogical framework 9 ACM 16
      Tool Support for Refactoring Haskell Programs University of Kent
      Parallelism without pain: Orchestrating computational algebra components into a high-performance parallel system Parallel and Distributed Processing with Applications, 2008. ISPA'08. International Symposium on IEEE 99--112
      Lightweight Invariants with Full Dependent Types. 2007
      Using application information to drive adaptive grid middleware scheduling decisions Proceedings of the 2nd workshop on Middleware-application interaction: affiliated with the DisCoTec federated conferences 2008 ACM 7--12
      Orchestrating production computer algebra components into portable parallel programs 257--266
      Semi-Explicit Parallel Programming in a Purely Functional Style: GpH 47--76
      Embedded Software for Autonomous Vehicle Control Using Optical Sensing: SEN002 Contributions and Futures
      Costing by Construction: Compositional Design and Verification of Embedded Applications using the Hume Software Development Methodology
      Generative Programming for Embedded Systems Final Report
      SCIEnce: using high-Level parallel programming technology to achieve heterogeneous symbolic computing on the grid [poster]
      Lightweight Invariants with Full Dependent Types. 2007
      Idris, a language with dependent types
      Generative Programming for Embedded Systems Final Report
      Using application information to drive adaptive grid middleware scheduling decisions Proceedings of the 2nd workshop on Middleware-application interaction: affiliated with the DisCoTec federated conferences 2008 ACM 7--12
      Prescient Scheduling of Parallel Functional Programs on Computational Grids Draft Proc. of Intl. Symp. on Trends in Functional Programming

2007

      Ott: effective tool support for the working semanticist ACM SIGPLAN Notices 42 ACM 1--12
      Refactorings that Split and Merge Programs
      Splitting and Merging Program Refactorings Citeseer 211
      SymGrid: a framework for symbolic computation on the grid Euro-Par 2007 Parallel Processing Springer Berlin Heidelberg 457--466
      Generic access to Web and Grid-based symbolic computing services: the SymGrid-services framework Parallel and Distributed Computing, 2007. ISPDC'07. Sixth International Symposium on IEEE 22--22
      Symgrid-par: Designing a framework for executing computational algebra systems on computational grids Computational Science--ICCS 2007 Springer Berlin Heidelberg 617--624
      Worst-case execution times for a purely functional language Implementation and Application of Functional Languages Springer Berlin Heidelberg 235--252
      Low-level programming in Hume: an exploration of the HW-Hume level Implementation and Application of Functional Languages Springer Berlin Heidelberg 91--107
      Automatic Amortised Worst-Case Execution Time Analysis. WCET
      Using mean-shift tracking algorithms for real-time tracking of moving images on an autonomous vehicle testbed platform 356--361
      Towards resource-certified software: A formal cost model for time and its application to an image-processing example Proceedings of the 2007 ACM symposium on Applied computing ACM 1307--1314
      Constructing Correct Circuits: Verification of Functional Aspects of Hardware Specifications with Dependent Types. 8 159--176
      Using intersection types for cost-analysis of higher-order polymorphic functional programs 4502 Springer-Verlag 221
      The Hume Report, Version 1.1
      Analysing and Deploying Resource-Bound AV Software in Hume
      Evaluating and Using a Grid-Enabled Parallel Haskell 27 139
      Case for Support: Adaptive Hardware Systems with Novel Algorithmic Design and Guaranteed Resource Bounds
      Symposium Organization
      Project Paper: the SCIEnce Joint Research Activity Symbolic Computing on the Grid Citeseer
      Concurrency and distribution 2007
      Ivor, a proof engine Implementation and Application of Functional Languages Springer Berlin Heidelberg 145--162
      Constructing Correct Circuits: Verification of Functional Aspects of Hardware Specifications with Dependent Types. 8 159--176

2006

      A dependently typed framework for static analysis of program execution costs Implementation and Application of Functional Languages Springer Berlin Heidelberg 74--90
      A verified staged interpreter is a verified compiler Proceedings of the 5th international conference on Generative programming and component engineering ACM 111--120
      Towards formally verifiable resource bounds for real-time embedded systems 3 ACM 27--36
      Exploiting purely functional programming to obtain bounded resource behaviour: the Hume approach Central European Functional Programming School Springer Berlin Heidelberg 100--134
      Towards Formally Verifiable WCET Analysis for a Functional Programming Language. WCET
      Bounded space programming using finite state machines and recursive functions: the hume approach
      Towards resource certified image processing software A15
      Dependently typed meta-programming Citeseer
      Verifying Temporal Properties in HW-Hume
      A dependently typed framework for static analysis of program execution costs Implementation and Application of Functional Languages Springer Berlin Heidelberg 74--90
      A verified staged interpreter is a verified compiler Proceedings of the 5th international conference on Generative programming and component engineering ACM 111--120
      Dependently typed meta-programming Citeseer

2005

      Small proof witnesses for LF Logic Programming Springer Berlin Heidelberg 387--401
      A cost-effective foundational certified code system Citeseer
      Metatheory of LF extended with dependent pair and unit types
      A Language for Certified Computation
      Inferring cost equations for recursive, polymorphic and higher-order functional programs Implementation of Functional Languages Springer Berlin Heidelberg 86--101
      The EmBounded Project Citeseer
      The Glasgow Haskell compiler: a technical overview
      Practical Implementation of a Dependently Typed Functional Programming Language Durham University
      Phase distinctions in the compilation of epigram Citeseer

2004

      The design of hume: a high-level language for the real-time embedded systems domain Domain-Specific Program Generation Springer Berlin Heidelberg 127--142
      FSM-Hume: programming resource-limited systems using bounded automata Proceedings of the 2004 ACM symposium on Applied computing ACM 1455--1461
      The Hume Report, Version 0.2
      Implementation of Functional Languages:... International Workshop; Selected Papers. Edinburgh, UK, September 8-11, 2003 Springer
      Inductive families need not store their indices Types for proofs and programs Springer Berlin Heidelberg 115--129

2003

      Foundational certified code in a metalogical framework Automated Deduction--CADE-19 Springer Berlin Heidelberg 106--120
      A metalogical approach to foundational certified code
      Hume: a domain-specific language for real-time embedded systems Generative Programming and Component Engineering Springer Berlin Heidelberg 37--56
      Comparing parallel functional languages: Programming and performance 16 Kluwer Academic Publishers 203--251
      Automatic skeletons in template haskell 13 World Scientific Publishing Company 413--424
      Predictable space behaviour in FSM-Hume Implementation of Functional Languages Springer Berlin Heidelberg 1--16
      Cost analysis using automatic size and time inference Implementation of Functional Languages Springer Berlin Heidelberg 232--247
      The finite state-ness of FSM-hume 4 19--28
      Is it time for real-time functional programming? 4 1--14
      Implementation of Functional Languages:... International Workshop; Selected Papers. Madrid, Spain, September 16-18, 2002 Springer

2002

      Comparing parallel functional languages: Programming and performance
      Granularity analysis using automatic size and time cost inference
      Trends in functional programming 3 Intellect Books
      Computational Algebra for Commodity Parallel Machines (The ParaGAP Project) Further Particulars
      Implementation of Functional Languages:... International Workshop; Selected Papers. Stockholm, Sweden, September 24-26, 2001 Springer
      Parallel programming: Models, methods and programming languages Euro-Par 2002 Parallel Processing Springer Berlin Heidelberg 603--604

2001

      The dynamic properties of Hume: a functionally-based concurrent language with bounded time and space behaviour Implementation of Functional Languages Springer Berlin Heidelberg 122--139
      Implementation of Functional Languages:... International Workshop; Selected Papers. Aachen, Germany, September 4-7, 2000 Springer
      Literature Survey \Numerical Computation in Type Theory

2000

      GpH and Eden: Comparing two parallel functional languages on a Beowulf cluster. Scottish Functional Programming Workshop 39--52
      HaskSkel: Algorithmic skeletons in haskell Implementation of Functional Languages Springer Berlin Heidelberg 181--198
      Gasless versus conventional laparoscopy. 97 29--34
      The multi-architecture performance of the parallel functional language GPH Euro-Par 2000 Parallel Processing Springer Berlin Heidelberg 739--743
      Hume: a bounded time concurrent language Electronics, Circuits and Systems, 2000. ICECS 2000. The 7th IEEE International Conference on 1 IEEE 407--411
      Parallel heuristic search in Haskell. Scottish Functional Programming Workshop 65--76
      The HasPar performance evaluation suite for GPH: A parallel non-strict functional language
      Hume: a Functionally Inspired Language for Safety-Critical Systems

1999

      Haskell 98: A non-strict, purely functional language
      Report on the programming language Haskell 98 University of Yale
      Engineering parallel symbolic programs in GPH. 11 Chichester, Sussex: J. Wiley, c1989-c2000. 701--752
      Report on the Programming Language Haskell 98, A Non-strict Purely Functional Language, February 1999 3 128
      Haskell 98 Technical report, http://www. haskell. org, 1999. URL: http://www. haskell. org/onlinereport
      Standard libraries for the Haskell 98 programming language, February 1999
      Implementation of Functional Languages: 10th International Workshop, IFL'98, London, UK, September 9-11, 1998, Selected Papers Springer Science \& Business Media
      Standard Libraries
      Implementation of Functional Languages:... International Workshop; Selected Papers. London, UK, September 9-11, 1998 Springer
      Large Scale Functional Applications Research Directions in Parallel Functional Programming Springer London 399--426
      Implementation of Functional Languages: Proceedings of IFL'98 Springer
      Foundations Research Directions in Parallel Functional Programming Springer London 31--61

1998

      Algorithm+ strategy= parallelism 8 Cambridge University Press 23--60
      GPH: an architecture-independent functional language
      Naira: A parallel 2Haskell compiler Implementation of Functional Languages Springer Berlin Heidelberg 214--230
      E cient persistent haskell 183--194
      Implementation of Functional Languages: 9th International Workshop, IFL'97, St. Andrews, Scotland, UK, September 10-12, 1997, Selected Papers 146 Springer Science \& Business Media
      Strategic SPMD Citeseer
      Haskell (GpH)

1997

      Report on the programming language Haskell
      Haskell 1.4: A non-strict, purely functional language
      Parallel cost centre profiling 429--446
      Making a packet: cost-effective communication for a parallel graph reducer Implementation of Functional Languages Springer Berlin Heidelberg 184--199
      Report on the programming language haskell, a non-strict purely-functional programming language, version 1.3
      Standard Libraries for the Haskell Programming Language: Version 1.4
      PARallel Database Engine (Parade) Final Report
      Simon Peyton Jones (Glasgow University) Phil Trinder (The Open University) December 19, 1997 Citeseer
      Report on the Programming Language Citeseer
      Implementation of Functional Languages:... International Workshop; Selected Papers. Bad Godesberg, Germany, September 16-18, 1996 Springer

1996

      GUM: a portable parallel implementation of Haskell ACM SIGPLAN Notices 31 ACM 79--88
      Type classes in Haskell 18 ACM 109--138
      Benchmarking implementations of functional languages with ``Pseudoknot'', a float-intensive benchmark 6 Cambridge University Press 621--655
      Pseudoknot: a float-intensive benchmark for functional compilers Journal of Functional Programming
      A sized time system for a parallel functional language
      Functional hypersheets Citeseer 39--48
      HARPER, R. and LILLIBRIDGE, M., Operational interpretations of an extension of Fm with control operators, 393 6 859--861
      Implementation on a parallel machine Applications of functional programming UCL Press Ltd. 177--190

1995

      Visualising granularity in parallel programs: A graphical winnowing system for Haskell 95 Citeseer 208--221
      On the Granularity of Divide-and-Conquer Parallelism. Functional Programming 8
      Monadic i/o in haskell 1.3 50--69
      GUM: a portable parallel implementation of Haskell
      Solving Systems of Linear Equations Functionally: a Case Study in Parallelisation
      Improving Granularity in Parallel Functional Programs: A Graphical Winnowing System for Haskell Functional Programming, Glasgow 1994 Springer London 111--126
      The pseudoknot functional benchmark 1 4
      Database manipulation in Haskell 1.3 Proceedings of the 1995 international conference on Functional Programming British Computer Society 95--103
      June 5, 1995
      Standard Libraries for the Programming Language

1994

      Type classes in Haskell Programming Languages and Systems, ESOP'94 Springer Berlin Heidelberg 241--256
      Parallel functional programming: An introduction 46
      Spiking your caches Functional Programming, Glasgow 1993 Springer London 58--68
      Automatic spark strategies and granularity for a parallel functional language reducer Parallel Processing: CONPAR 94 --- VAPP VI Springer Berlin Heidelberg 521--532
      GRAPHing the Future
      GRAPH for PVM: Graph Reduction for Distributed Hardware
      Pseudoknot: a Float-Intensive Benchmark for Functional Compilers (SECOND DRAFT)
      Functional Programming, Glasgow 1993 Springer-Verlag New York, Inc.
      University of Glasgow January 20, 1994 Citeseer

1993

      The Glasgow Haskell compiler: a technical overview 93
      The Glasgow Haskell compiler: a technical overview 93
      Processing transactions on GRIP, a parallel graph reducer PARLE'93 Parallel Architectures and Languages Europe Springer Berlin Heidelberg 634--647
      The Glasgow Haskell compiler: a retrospective Functional Programming, Glasgow 1992 Springer London 62--71
      Improving persistent data manipulation for functional languages Functional Programming, Glasgow 1992 Springer London 72--84
      Getting a GRIP (DRAFT) Citeseer
      The spineless tagless G-Machine| NOT!"
      Functional Programming, Glasgow 1993 Workshops in Computing. Springer Verlag
      Final report on the GRASP project

1992

      Report on the programming language Haskell: a non-strict, purely functional language version 1.2 27 ACM 1--164
      Report on the programming language Haskell: a non-strict, purely functional language version 1.2 27 ACM 1--164
      Efficient Type Inference Using Monads (Summary) Functional Programming, Glasgow 1991 Springer London 146--157
      A Parallel Functional Database On GRIP Functional Programming, Glasgow 1991 Springer London 1--24
      A Dynamic Semantics for Haskell (Draft) Citeseer
      Report on the Programming Language Citeseer

1991

      Parallel SML: a Functional Language and its Implementation in DACTL Pitman
      Profiling scheduling strategies on the GRIP parallel reducer
      An algorithmic and semantic approach to debugging Functional Programming, Glasgow 1990 Springer London 44--53
      Imperate: be imperative
      August 23, 1991 Citeseer

1990

      Some early experiments on the GRIP parallel reducer 51--72
      Implementing Haskell type classes Functional Programming Springer London 265--286
      Exception handling in lazy functional languages University of Glasgow. Department of Computing Science

1989

      Using Dactl to implement declarative languages Proceedings of the conference on CONPAR 88 Cambridge University Press 116--124
      Exception handling in a parallel functional language: PSML TENCON'89. Fourth IEEE Region 10 International Conference IEEE 169--173
      Error Handling in the Parallel Implementation of a Lazy Functional Language University of East Anglia. School of Information Systems
      A Proposal for an Implementation of Full Dactl on a Meiko Transputer Rack University of East Anglia. School of Information Systems
      Exception Handling in Functional Programming Languages University of East Anglia, School of Information Systems
      Implementing Pattern-matching Functional Languages Using Dactl University of East Anglia, School of Information Systems

1988

      Report on the functional programming language Haskell
      DACTL: Some introductory papers University of East Anglia. School of Information Systems
      Parallel implementations of declarative languages based on graph rewriting 88 246--9
      Implementing functional languages for parallel machines. University of East Anglia
      Extensions to Core Dactl1 University of East Anglia. School of Information Systems

1986

      Compiling ML to DACTL: Early Experiences University of East Anglia, School of Information Systems