Synchronizable Series Expressions. Part 1. User's Manual for the OSS Macro Package.

Abstract : The benefits of programming in a functional style are well known. In particular, algorithms that are expressed as compositions of functions operating on series/vectors/streams of data elements are much easier to understand and modify than equivalent algorithms expressed as loops. Unfortunately, many programmers hesitate to use series expressions, because they are typically implemented very inefficiently. A Common Lisp macro package (OSS) has been implemented which supports a restricted class of series expressions, obviously sychronizable series expressions, which can be evaluated very efficiently by automatically converting them into loops. Using this macro package, programmers can obtain the advantages of expressing computations as series expressions without incurring any run-time overhead. Keywords: Compilation; Program optimization; Enumerators; Online transducers; Offline transducers; Series functions; Debugging.

[1]  Richard C. Waters,et al.  A Method for Analyzing Loop Programs , 1979, IEEE Transactions on Software Engineering.

[2]  Guy L. Steele,et al.  Common Lisp the Language , 1984 .