|Automatic Transformation of Series Expressions into Loops|
|Date||Friday, May 5, 2000|
|Speaker||Richard C. Waters|
|Affiliation||Mitsubishi Electric Research Lab (MERL)|
benefits of programming in a functional style are well known. In particular,
algorithms that are expressed as compositions of functions operating on
sequences/vectors/streams of data elements are easier to understand and
modify than equivalent algorithms expressed as loops. Unfortunately, this
kind of expression is not used anywhere near as often as it could be, for
at least three reasons: (1) most programmers are less familiar with this
kind of expression than with loops; (2) most programming languages provide
poor support for this kind of expression; and (3) when support is provided,
it is seldom efficient.
In any programming language, the second and third problems can be largely solved by introducing a data type called series, a comprehensive set of procedures operating on series, and a preprocessor (or compiler extension) that automatically converts most series expressions into efficient loops. A set of restrictions specifies which series expressions can be optimized. If programmers stay within the limits imposed, they are guaranteed of high efficiency at all times.
A Common Lisp macro package supporting series has been in use for some time. A prototype demonstrates that series can be straightforwardly supported in Pascal.
|Location||545 Technology Square (aka NE43)|
|Room||9th Room Conference Room|
|Bio||President and CEO Mitsubishi Electric Information Technology Center America (ITA) Research Fellow and Director Mitsubishi Electric Research Lab (MERL)|