Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Rewriting Haskell Strings
[go: Go Back, main page]

Blue PiLlS

Rewriting Haskell Strings

Duncan Coutts1, Don Stewart2 and Roman Leshchinskiy2

1Programming Tools Group
Oxford University Computing Laboratory

2Computer Science & Engineering
University of New South Wales


Awarded "Most Practical Paper" at PADL 2007, Nice France.

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.

Full Text

The full text of the paper can be downloaded: (ps.gz ,pdf)

Source code

The source code for the Data.ByteString library, and examples used in the paper, can be downloaded:

Applications

The following applications use Data.ByteString:

BibTeX Entry

@inproceedings{CSL06,
    author = {Duncan Coutts and Don Stewart and Roman Leshchinskiy},
    title  = {Rewriting Haskell Strings},
    booktitle = {Practical Aspects of Declarative Languages 8th International Symposium, PADL 2007},
    year   = 2007,
    month  = jan,
    pages  = {50--64},  
    publisher = {Springer-Verlag},
}


Mon Oct 23 11:56:34 EST 2006