English

Efficient and Correct Stencil Computation via Pattern Matching and Static Typing

Programming Languages 2011-09-06 v1

Abstract

Stencil computations, involving operations over the elements of an array, are a common programming pattern in scientific computing, games, and image processing. As a programming pattern, stencil computations are highly regular and amenable to optimisation and parallelisation. However, general-purpose languages obscure this regular pattern from the compiler, and even the programmer, preventing optimisation and obfuscating (in)correctness. This paper furthers our work on the Ypnos domain-specific language for stencil computations embedded in Haskell. Ypnos allows declarative, abstract specification of stencil computations, exposing the structure of a problem to the compiler and to the programmer via specialised syntax. In this paper we show the decidable safety guarantee that well-formed, well-typed Ypnos programs cannot index outside of array boundaries. Thus indexing in Ypnos is safe and run-time bounds checking can be eliminated. Program information is encoded as types, using the advanced type-system features of the Glasgow Haskell Compiler, with the safe-indexing invariant enforced at compile time via type checking.

Keywords

Cite

@article{arxiv.1109.0777,
  title  = {Efficient and Correct Stencil Computation via Pattern Matching and Static Typing},
  author = {Dominic Orchard and Alan Mycroft},
  journal= {arXiv preprint arXiv:1109.0777},
  year   = {2011}
}

Comments

In Proceedings DSL 2011, arXiv:1109.0323

R2 v1 2026-06-21T18:59:36.261Z