 
Summary: Expressiveness of streaming string transducers
Rajeev Alur1
and Pavol Cernư2
1 University of Pennsylvania
2 IST Austria
Abstract
Streaming string transducers [1] define (partial) functions from input strings to output strings.
A streaming string transducer makes a single pass through the input string and uses a finite
set of variables that range over strings from the output alphabet. At every step, the transducer
processes an input symbol, and updates all the variables in parallel using assignments whose
righthandsides are concatenations of output symbols and variables with the restriction that
a variable can be used at most once in a righthandside expression. It has been shown that
streaming string transducers operating on strings over infinite data domains are of interest in
algorithmic verification of listprocessing programs, as they lead to Pspace decision procedures
for checking pre/post conditions and for checking semantic equivalence, for a welldefined class of
heapmanipulating programs. In order to understand the theoretical expressiveness of streaming
transducers, we focus on streaming transducers processing strings over finite alphabets, given the
existence of a robust and wellstudied class of "regular" transductions for this case. Such regular
transductions can be defined either by twoway deterministic finitestate transducers, or using
a logical MSObased characterization. Our main result is that the expressiveness of streaming
