Issue No. 01 - January (1991 vol. 17)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.67573
<p>A description is given of features which were added to a conventional programming language that will manipulate streams of values. A stream is a sequence of values of a certain fixed type. The number of elements of a stream may be determined at execution time, and evaluation of each element can be postponed until its value is actually needed. Many programs can be expressed naturally and clearly as networks of processes communicating by means of streams. The network is called a composite function and consists of several component functions. Since component functions are connected solely by streams, they greatly increase the flexibility of combinations and the reusability of programs. Loop statements can be considered as iterative statements over streams. One general problem in these networks is the mechanism of terminating each process of the network. A practical solution for this problem is presented. Comparisons to other programming styles, such as coroutines, Lisp, functional programming, and dataflow languages, are described. Three modes of execution are considered for the implementation of composite functions: parallel mode, coroutine mode, and inline mode. In the inline mode, a composite function is expanded and transformed into a single function, realizing maximum run-time efficiency. Algorithms for this expansion are given.</p>
loop statements; streams; Pascal-like language; fixed type; composite function; component functions; combinations; reusability; iterative statements; programming styles; coroutines; Lisp; functional programming; dataflow languages; parallel mode; coroutine mode; inline mode; programming
M. Sassa and I. Nakata, "Programming with Streams in a Pascal-Like Language," in IEEE Transactions on Software Engineering, vol. 17, no. , pp. 1-9, 1991.