Rewriting Haskell Strings

Stc
Date: 2006-11-23

Time: 11:45

Room: BBL room 471

Speaker: Doaitse Swierstra

Title: Rewriting Haskell Strings (*)

Abstract

The Haskell String type is notoriously inefficient. We introduce a new data type, ByteString, based on lazy lists of byte arrays, combining the speed benefits of strict arrays with lazy evaluation. Equational transformations based on term rewriting are used to deforest intermediate ByteStrings automatically. We describe novel fusion combinators with improved expressivity and performance over previous functional array fusion strategies. A library for ByteStrings is implemented, providing a purely functional interface, and approaches the speed of low-level mutable arrays in C.

(*) Authors:

Duncan Coutts (Programming Tools Group, Oxford University Computing Laboratory)

Don Stewart and Roman Leshchinskiy (Computer Science & Engineering, University of New South Wales)

Accepted for PADL 2007.