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
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:
darcs get --partial http://www.cse.unsw.edu.au/~dons/code/fps-unstable
@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},
}