From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!ames!ucbcad!ucbvax!sdcsvax!sdcc6!loral!ian From: ian@loral.UUCP (Ian Kaplan) Newsgroups: comp.lang.ada Subject: Re: Stream management in Ada Message-ID: <1394@loral.UUCP> Date: Tue, 17-Mar-87 18:15:44 EST Article-I.D.: loral.1394 Posted: Tue Mar 17 18:15:44 1987 Date-Received: Thu, 19-Mar-87 06:57:52 EST References: <8703151508.AA03015@ucbvax.Berkeley.EDU> Reply-To: ian@loral.UUCP (Ian Kaplan) Distribution: world Organization: Loral Instrumentation, San Diego List-Id: It was stated in the original article that a "pure Ada" solution was sought. I am not sure what exactly this means. Presumable if it is coded in Ada it is "pure", but I think that the author ment more than this. At the heart of the Ada process model is Hoare's Communicating Sequential Processes (CSP) scheme. Pure process model algorithms are not very good at handling steam applications. Dataflow is very good at handling streams, however. The Lucid programming language is designed for stream processing. See "Lucid" by Ashcroft and Wadge, Academic Press. For a brief discussion of the dataflow and process model, see "Programming the LOral LDF 100 Dataflow Machine", by Ian Kaplan, which should appear in SigPlan Notices around May. "Processes" in dataflow communicate asynchronously. This can be simulated in a process based language by placing a mail box between the sender and the receiver. The rendezvous are with the mail box. The mail box not only allows asynchronous operation (e.g., pipelining) but it also functionally decouples the two communicating processes. Dataflow is not without its problems however. The mailbox must provide buffering. If the data producer is faster than the data consumer the mailbox buffers will fill up. When this happens the producer must suspend. This is what happens with UNIX pipes. For an excellent discussion of UNIX pipes and their implementation see Chapter 2 of "Operating Systems: design and implementation" by Andrew S. Tanenbaum, Prentice-Hall. Until March 27, 1987 Ian Kaplan Loral Dataflow Group Loral Instrumentation (619) 560-5888 x4812 USENET: {ucbvax,decvax,ihnp4}!sdcsvax!loral!ian ARPA: sdcc6!loral!ian@UCSD USPS: 8401 Aero Dr. San Diego, CA 92123