Mary Sheeran

Mary Sheeran's photo should be here

I am a professor in the Computer Science and Engineering Department at Chalmers University of Technology.

How to reach me

Postal address
Computer Science and Engineering Dept. (D&IT)
Chalmers University of Technology
SE-412 96 Göteborg
Visiting address
D&IT building, room 5466
(+46)-31-772 10 13
(+46)-31-16 56 55
ms (at) chalmers (dot) se

celtic bar


My paper about searching for parallel prefix networks has now appeared in the Journal of Functional Programming, volume 21, issue 01, pp. 59-114. The abstract is available at the JFP site, and those who have access to the journal can view the pdf from there. I am permitted to provide the following link to the article, provided I clearly state that the article is Copyright © Cambridge University Press 2010. The paper was pubished online on Dec. 6 2010.

Mary Sheeran, Functional and dynamic programming in the design of parallel prefix networks, JFP 21(1).

I have since been informed by Igor Sergeev from Moscow State University that the minimum depth parallel prefix construction that I arrive at at the end of the paper is actually optimal. He has proved a lower bound (in a heroic proof that so far is only written down in Russian), and my construction matches the bound exactly.

Our project with Ericsson on a DSL for DSP algorithm design has resulted in two nice papers.

Feldspar: A Domain Specific Language for Digital Signal Processing algorithms: Emil Axelsson, Koen Claessen, Gergely Devai, Zoltan Horvath, Karin Keijzer, Bo Lyckegård, Anders Persson, Mary Sheeran, Josef Svenningsson and Andras Vajda. In Proc. MemoCode 2010.

The Design and Implementation of Feldspar: an Embedded Language for Digital Signal Processing Emil Axelsson, Koen Claessen, Mary Sheeran, Josef Svenningsson, David Engdal, and Anders Persson. To appear in post-symposium proceedings for IFL 2010.

Conferences and Workshops

I am on the PC of The Symposium on Trends in Functional Programming (TFP 2012). Draft papers should be submitted by March 26th, 2012. The conference dates are June 12-14 2012, and the location is St. Andrews. There are lots of interesting events going on along with the conference, so take a look at the web page. The main reviewing takes place after the conference, with only a selection of the presented papers appearing in the final proceedings. You should consider submitting a paper. And I look forward to seeing you in Scotland!

I was on the PC of Symposium on Implementation and Application of Functional Languages (IFL 2011). The conference dates were October 3-5 2011 and I enjoyed attending the conference in Lawrence, Kansas. Post-conference reviewing has just been concluded and 11 papers will appear in the final proceedings.

I was on the PC for the 2012 workshop on Declarative Aspects and Applications of Multicore Programming, to be held on 28 Jan. 2012 (immediately after POPL) in Philadelphia. I attended the workshop and also presented a paper about a new array representation in Obsidian and its use in building fast sorters for GPUs (co-authored with Joel Svensson and Koen Claessen).

The International Conference on Formal Methods in Computer Aided Design of Electronic Circuits ( FMCAD 2011) was held in Austin, Texas in 2011. As usual, I really enjoyed it. I like the fact that participation is half from industry and half from academia. FMCAD is an excellent conference, and it just keeps getting better. You will find that at least since FMCAD 2006, FMCAD conference pages include (under "Advance Program") slides from both ordinary presentations and invited talks and tutorials. There are many gems among these talks, and the collection is a very useful resource for the community.I am on the steering committee for the conference. If you have any ideas or suggestions for how to improve the conference, please let me know. FMCAD 2012 will be held in Cambridge, UK, chaired by Satnam Singh and Gianpiero Cabodi. I am on the PC this time round. The planned conference dates are Oct. 22 to 25. The preliminary call for papers appeared recently. Please consider submitting something. See you there!

I was also on the PC of the Industry Track of the 4th Internatoinal Conference on Software Language Engineering 2011.


My research interests are in functional programming, and particularly its application to hardware description and verification. More recently, I have developed an interest in the more general topic of resource aware functional programming. I am a member of the Functional Programming Group at Chalmers, and lead the group along with John Hughes. A major emphasis in the group is on Domain Specific Embedded Languages in the functional programming language Haskell. We have developed Lava for hardware design at the gate or netlists level, Wired for layout-aware hardware design and QuickCheck for specification-guided random testing of software. Recently, we have begun to investigate data-parallel programming for Graphics Processing Units (GPUs) as we are convinced that it is vital to find better ways to program parallel machines. In similar vein, working with Ericsson and ELTE Budapest to develop a Domain Specific Language for Digital Signal Processing. The language is called Feldspar and the associated tools are released by Ericsson as open source software. In the research group, we also have a strong interest in automated reasoning, from SAT solvers and their applications to First Order Logic Theorem Proving, model finding and related topics.

One of my doctoral students, Niklas Een, successfully defended his thesis on February 8 2005. You might want to read his thesis and then download MiniSat. Together with the SatElite preprocessor, MiniSat won all three industrial categories in the SAT 2005 competition. So this is world-leading work that is freely available and is going to be widely used. Niklas now works at Berkeley, following a spell at Cadence Berkeley Labs. His co-author Niklas Sörensson has now finished his doctorate and taken up part-time employment in our group. Other students who have completed their theses and now work in industry are Per Bjesse (now at Synopsys in Portland ) and Jan-Willem Roorda (now at Fenix-DA in Eindhoven). Magnus Björk, who worked on an extension of Stålmarck's method to first order logic, defended his doctoral thesis on May 11, 2006. After a year in Oxford working with Tom Melham and Carl Seger on STE and abstraction, he first worked on a project at Saab Space before taking up an industrial research position (partially funded by VR) at Jasper Design Automation, here in Göteborg.

Emil Axelsson has worked on Wired, a language that takes account of the wires in circuits. Emil got his lic. in May 2006, and defended his PhD thesis on Sept. 9, 2008. The second half of the thesis documents his work on the most recent version of the Wired system, and is extremely elegant. This work was funded by an Intel-custom grant from the Semiconductor Research Corporation and has since been taken up by our VLSI group here at Chalmers. Since the beginning of 2009, Emil has worked on a project with Ericsson to develop a domain specific language for DSP algorithm design (see the Feldspar papers above.) He is the main developer of Feldspar. I am also co-supervisor to Eva Burrows in Bergen. Her thesis, on an approach to parallel programming based on Data Dependency Algebras, has been submitted and will be defended in May 2011.

I currently have two doctoral students at Chalmers. Joel Svensson is working on programming methods for Graphics Processing Units (GPUs). Koen is co-supervisor. We are investigating whether the structural hardware design methods based on connection patterns that we developed for Lava (and even as far back as my work on muFP and Ruby) are also useful in this parallel programming context. It is looking good so far, and we are having fun. Joel has christened the new language Obdidian. Joel has had an internship at Intel, working on a DSL in Haskell for using their Array Building Blocks library. Anders Persson is an employee of Ericsson who is a VR-funded industrial doctoral student on the Feldspar project, and also project manager for the entire project, which includes ELTE University in Budapest. (See the Feldspar papers above.) Recently we have begun to think about how to profile Feldspar programs, in order to bridge the semantic gap to the generated C code. Colin Runciman from York visited us recently (with funding from the Ericsson Foundation) and was hugely inspiring! We look forward to further work on this topic. Other topics being worked on are cost estimation for Feldspar programs and the control of memory use.

Recently, I received basic research funding from the Swedish Research Agency to return to work on synthesising and programming accelerators for high performance computations. My chosen application area is fully homomorphic encryption, and I hope to have contacts with Galois Inc. on the topic. It turns out that Ericsson is interested in how to design and program accelerators too. This might be Feldspar's killer app!


John Hughes and I are developing a new course on Parallel Functional Programming. The web site (and the course) are still under construction. The course starts in March 2012.

Other activities

I am a founding member of the IFIP Working Group 2.8 on Functional Programming.

I am on the Steering Committee of HIPERFIT, a Danish Research Center for Functional High-Performance Computing for Financial Information Technology. There is substantial overlap between the aims of this centre and the research vision of the Functional Programming Group at Chalmers, as enunciated in our most recent grant proposal to SSF's call on Software Intensive Systems.