VLDB 2026 Research / reviewers in the wild / expert
Mary Sheeran
dblp:46/6194
· DBLP profile ↗
18ranked-venue papers
6as first author
2since 2021 · last 2022
0000-0003-2509-0957ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 15 · 5 first-author · 2 since 2021Theory of computation · 7 · 4 first-authorSystems, architecture and hardware · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Synchron - An API and Runtime for Embedded Systems
Abhiroop Sarkar, Bo Joel Svensson, Mary Sheeran |
ECOOP | 3 |
| 2021 | Higher-order concurrency for microcontrollersabstractProgramming microcontrollers involves low level interfacing with hardware and peripherals that are concurrent and reactive. Such programs are typically written in a mixture of C and assembly using concurrent language extensions (like FreeRTOS tasks and semaphores), resulting in unsafe, callback-driven, error-prone and difficult-to-maintain code. Abhiroop Sarkar, Robert Krook, Bo Joel Svensson, Mary Sheeran |
MPLR | 4 |
| 2020 | Hailstorm: A Statically-Typed, Purely Functional Language for IoT ApplicationsabstractWith the growing ubiquity of Internet of Things (IoT), more complex logic is being programmed on resource-constrained IoT devices, almost exclusively using the C programming language. While C provides low-level control over memory, it lacks a number of high-level programming abstractions such as higher-order functions, polymorphism, strong static typing, memory safety, and automatic memory management. Abhiroop Sarkar, Mary Sheeran |
PPDP | 2 |
| 2017 | Hardware software co-design in HaskellabstractWe present a library in Haskell for programming Field Programmable Gate Arrays (FPGAs), including hardware software co-design. Code for software (in C) and hardware (in VHDL) is generated from a single program, along with the code to support communication between hardware and software. We present type-based techniques for the simultaneous implementation of more than one embedded domain specific language (EDSL). We build upon a generic representation of imperative programs that is loosely coupled to instruction and expression types, allowing the individual parts to be developed and improved separately. Code generation is implemented as a series of translations between progressively smaller, typed EDSLs, safeguarding against errors that arise in untyped translations. Initial case studies show promising performance. Markus Aronsson, Mary Sheeran |
Haskell | 2 |
| 2016 | Special issue dedicated to ICFP 2014: EditorialabstractThe 19th ACM SIGPLAN International Conference on Functional Programming (ICFP) took place on September 1–3, 2014 in Gothenburg, Sweden. After the conference, the programme committee, chaired by Manuel Chakravarty, selected several outstanding papers and invited their authors to submit to this special issue of JFP. We acted as editors for these submissions. This issue includes the six accepted papers, each of which provides substantial new material beyond the original conference version. The selected papers demonstrate both the quality and the breadth of the conference, with a strong emphasis on types and their applications, and ranging from compilation methods through contract verification to homotopy type theory. Derek Dreyer, Mary Sheeran |
J. Funct. Program. | 2 |
| 2016 | A language for hierarchical data parallel design-space exploration on GPUsabstractAbstract Graphics Processing Units (GPUs) offer potential for very high performance; they are also rapidly evolving. Obsidian is an embedded language (in Haskell) for implementing high performance kernels to be run on GPUs. We would like to have our cake and eat it too; we want to raise the level of abstraction beyond CUDA code and still give the programmer control over the details relevant to kernel performance. To that end, Obsidian provides array representations that guarantee elimination of intermediate arrays while also using the type system to model the hierarchy of the GPU. Operations are compiled very differently depending on what level of the GPU they target, and as a result, the user is gently constrained to write code that matches the capabilities of the GPU. Thus, we implement not Nested Data Parallelism, but a more limited form that we call Hierarchical Data Parallelism. We walk through case-studies that demonstrate how to use Obsidian for rapid design exploration or auto-tuning, resulting in performance that compares well to the hand-tuned kernels used in Accelerate and NVIDIA Thrust. Bo Joel Svensson, Ryan Newton, Mary Sheeran |
J. Funct. Program. | 3 |
| 2015 | Functional programming and hardware design: still interesting after all these yearsabstractHigher order functions provide an elegant way to express algorithms designed for implementation in hardware. By showing examples of both classic and new algorithms, I will explain why higher order functions deserve to be studied. Next, I will consider the extent to which ideas from functional programming, and associated formal verification methods, have influenced hardware design in practice. What can we learn from looking back? You might ask "Why are methods of hardware design still important to our community?". Maybe we should just give up? One reason for not giving up is that hardware design is really a form of parallel programming. And here there is still a lot to do! Inspired by Blelloch's wonderful invited talk at ICFP 2010, I still believe that functional programming has much to offer in the central question of how to program the parallel machines of today, and, more particularly, of the future. I will briefly present some of the areas where I think that we are poised to make great contributions. But maybe we need to work harder on getting our act together? Mary Sheeran |
ICFP | 1 |
| 2011 | Functional and dynamic programming in the design of parallel prefix networksabstractAbstract A parallel prefix network of width n takes n inputs, a 1 , a 2 , . . ., a n , and computes each y i = a 1 ○ a 2 ○ ⋅ ⋅ ⋅ ○ a i for 1 ≤ i ≤ n , for an associative operator ○. This is one of the fundamental problems in computer science, because it gives insight into how parallel computation can be used to solve an apparently sequential problem. As parallel programming becomes the dominant programming paradigm, parallel prefix or scan is proving to be a very important building block of parallel algorithms and applications. There are many different parallel prefix networks, with different properties such as number of operators, depth and allowed fanout from the operators. In this paper, ideas from functional programming are combined with search to enable a deep exploration of parallel prefix network design. Networks that improve on the best known previous results are generated. It is argued that precise modelling in a functional programming language, together with simple visualization of the networks, gives a new, more experimental, approach to parallel prefix network design, improving on the manual techniques typically employed in the literature. The programming idiom that marries search with higher order functions may well have wider application than the network generation described here. Mary Sheeran |
J. Funct. Program. | 1 |
| 2010 | Feldspar: A domain specific language for digital signal processing algorithmsabstractA new language, Feldspar, is presented, enabling high-level and platform-independent description of digital signal processing (DSP) algorithms. Feldspar is a pure functional language embedded in Haskell. It offers a high-level dataflow style of programming, as well as a more mathematical style based on vector indices. The key to generating efficient code from such descriptions is a high-level optimization technique called vector fusion. Feldspar is based on a low-level, functional core language which has a relatively small semantic gap to machine-oriented languages like C. The core language serves as the interface to the back-end code generator, which produces C. For very small examples, the generated code performs comparably to hand-written C code when run on a DSP target. While initial results are promising, to achieve good performance on larger examples, issues related to memory access patterns and array copying will have to be addressed. Emil Axelsson, Koen Claessen, Gergely Dévai, Zoltán Horváth, Karin Keijzer, Bo Lyckegård, Anders Persson, Mary Sheeran, Josef Svenningsson, András Vajda |
MEMOCODE | 8 |
| 2006 | Multiplier reduction tree with logarithmic logic depth and regular connectivityabstractA novel partial-product reduction circuit for use in integer multiplication is presented. The high-performance multiplier (HPM) reduction tree has the ease of layout of a simple carry-save reduction array, but is in fact a high-speed low-power Dadda-style tree having a worst-case delay which depends on the logarithm (O(log TV)) of the word length N Henrik Eriksson, Per Larsson-Edefors, Mary Sheeran, Magnus Själander, Daniel Johansson, Martin Scholin |
ISCAS | 3 |
| 2004 | Generating Fast Multipliers Using Clever Circuits
Mary Sheeran |
FMCAD | 1 |
| 2003 | Using Lava to design and verify recursive and periodic sorters
Koen Claessen, Mary Sheeran, Satnam Singh |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2000 | Checking Safety Properties Using Induction and a SAT-Solver
Mary Sheeran, Satnam Singh, Gunnar Stålmarck |
FMCAD | 1 |
| 2000 | A Tutorial on Stålmarck's Proof Procedure for Propositional Logic
Mary Sheeran, Gunnar Stålmarck |
Formal Methods Syst. Des. | 1 |
| 1998 | A Tutorial on Stålmarcks's Proof Procedure for Propositional Logic
Mary Sheeran, Gunnar Stålmarck |
FMCAD | 1 |
| 1998 | Lava: Hardware Design in HaskellabstractLava is a tool to assist circuit designers in specifying, designing, verifying and implementing hardware. It is a collection of Haskell modules. The system design exploits functional programming language features, such as monads and type classes, to provide multiple interpretations of circuit descriptions. These interpretations implement standard circuit analyses such as simulation, formal verification and the generation of code for the production of real circuits.Lava also uses polymorphism and higher order functions to provide more abstract and general descriptions than are possible in traditional hardware description languages. Two Fast Fourier Transform circuit examples illustrate this. Per Bjesse, Koen Claessen, Mary Sheeran, Satnam Singh |
ICFP | 3 |
| 1994 | Designing Arithmetic Circuits by Refinement in Ruby
Geraint Jones, Mary Sheeran |
Sci. Comput. Program. | 2 |
| 1992 | Designing Arithmetic Circuits by Refinement in Ruby
Geraint Jones, Mary Sheeran |
MPC | 2 |