Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!rutgers!brl-adm!adm!PAAAAAR@calstate.bitnet From: PAAAAAR@calstate.bitnet Newsgroups: comp.unix.questions Subject: why learn UNIX Message-ID: <4283@brl-adm.ARPA> Date: Thu, 5-Feb-87 17:21:52 EST Article-I.D.: brl-adm.4283 Posted: Thu Feb 5 17:21:52 1987 Date-Received: Sat, 7-Feb-87 15:56:06 EST Sender: news@brl-adm.ARPA Lines: 35 In-Reply-To: "John Woods, Software"'s message of 28 Jan 87 03:49:00 GMT > WHAT IN HOLY GOOD GOD EARTH DO PIPES HAVE TO DO WITH RAPID PROTOTYPING?? > > This article sounds like a snow job... growl. > > garry wiegand (garry%cadif-oak@cu-arpa.cs.cornell.edu) In addition to the obvious use of pipes for spell checking and such things it is *not* well known that pipes are an ideal way to prototype any problem which has what Michael Jackson (*not* the dancer!) calls a "structure clash". In JSP (Jackson Structured Programming) a problem with a clash is decomposed into separate programs and data objects linked by data streams. The streams are defined to work *exactly* like pipes. Usually a pipelined solution is a little slow and so JSP typically recodes one or more programs as semi-co-routines by a process called "inversion". These look UGLY but work efficiently. See Bo. Sanden's recent book and articles. Also (inshallah) the book that I will get out with Paul Ross next year (Systems Programming: A Softwrae Engineering Approach) which has several chapters on prototypes and process communication. Also - if anyone needs to invert any C programs or create co-functions in C I have a short m4 macro package that makes the task a little less dirty. Dick Botting, Dept Comp Sci., Cal State U, San Bernardino, CA 92407 PAAAAAR@CCS.CSUSCC.CALSTATE.EDU voice:714-887-7368 modem:714-887-7365 (Silicon Mountain -- where the LA smog stops)