Least We Forget: Multics

trb at masscomp.UUCP trb at masscomp.UUCP
Wed Jul 11 04:50:06 AEST 1984


mit-eddie!barmar:
> You might be interested to know that I don't consider pipes to be one
> of them; pipes are a kludge to get around the fact that dynamic linking
> was hard to implement, so instead of making it easy to call lots of
> subroutines, you start up a process and read its output.

Dynamic linking doesn't give you the toolkit versatility that the pipe
system call (and its use in interactive shell pipes) gives you.  My
favorite simple example is the rhyming dictionary (I don't remember
where I first saw this example).  Given the v7 programs:

sort:	sort lines lexically
rev:	reverse order of characters in each line

Then

% rev < input-dictionary | sort | rev > rhyming-dictionary

produces a (lexical) rhyming dictionary.

Another simple example would be a spelling checker, using the v7 tools
tr, uniq, and comm, along with a dictionary of correctly spelled
words.

I don't see how pipes are a kludge, they seem pretty elegant to me.
The pipe system call and the shell pipe interface seems like an ideal
way to provide a co-routine interface to naive users.  How could
dynamic links do this better (more simply)?

(Oh no, I envision all the object oriented purists coming through the
windows.)

	Andy Tannenbaum   Masscomp Inc  Westford MA   (617) 692-6200 x274



More information about the Comp.unix mailing list