• DocumentCode
    1379877
  • Title

    Programming with streams in a Pascal-like language

  • Author

    Nakata, Ikuo ; Sassa, Masataka

  • Author_Institution
    Inst. of Inf. Sci. & Electron., Tsukuba Univ., Ibaraki, Japan
  • Volume
    17
  • Issue
    1
  • fYear
    1991
  • fDate
    1/1/1991 12:00:00 AM
  • Firstpage
    1
  • Lastpage
    9
  • Abstract
    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
  • Keywords
    programming; Lisp; Pascal-like language; combinations; component functions; composite function; coroutine mode; coroutines; dataflow languages; fixed type; functional programming; inline mode; iterative statements; loop statements; parallel mode; programming styles; reusability; streams; Algorithms; Computer languages; Data structures; Functional programming; Joining processes; Level control; Runtime; Software engineering;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.67573
  • Filename
    67573