Newsgroups: alt.os.multics,alt.sys.pdp10,alt.folklore.computers,comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!oitnews.harvard.edu!news.sesqui.net!uuneo.neosoft.com!bonkers.taronga.com!peter
From: peter@bonkers.taronga.com (Peter da Silva)
Subject: Re: Retro-Computing!
Organization: Taronga Park BBS
Message-ID: <D6HJ3K.GtJ@bonkers.taronga.com>
References: <3ledga$rcr@news2.delphi.com> <vsocciD6DErH.ADz@netcom.com> <3lmivt$ao@usenet.rpi.edu> <vsocciD6H5wI.KLt@netcom.com>
Date: Tue, 4 Apr 1995 00:38:07 GMT
Lines: 43

In article <vsocciD6H5wI.KLt@netcom.com>,
Vance Socci <vsocci@netcom.com> wrote:
>Here's a practical example of another approach relevant to
>alt.sys.pdp10: the command parser for DDT-10, written by Tom Eggers.
>Rather than collect the characters into a buffer and do some kind of
>linear search after receiving a delimiter, the parser actually runs in a
>sense multiple threads. The first thread to reach a terminus ends the
>parsing and activates the desired function. This allows the work that
>would normally be done all at once at the end to be distrubuted
>throughout the user's type-in. If you were on a slow machine, this could
>significantly speed up the response at the end of the command.

That the implementation was spelled out explicitly by the programmer is
simply an implimentation detail. Virtually every complex parser works
this way, generally by building a state machine to further improve the
efficiency of the code.

>By the way, this is not easy to express in terms of linear languages
>like Von-Neumann machine languages. In a graphical language, it would be
>trivial to  express.

Or in yacc or lex or wart...

>Another example would be the type-ahead example someone brought up
>earlier. Rather than type ahead and assume that the earlier commands
>properly yielded their results, a graphical command language could
>create a  seperate window/icon for every operation, [...]

This is a useful model for simple command design. I would love to have
a shell like this... it would be the perfect complement to the UNIX
pipes+filters model.

	/------\
	| find |---+------------+
	\--++--/   | Start /var |
	   ||      | Match core |
	/--++--\   +------------+
	| rm   |---+--------+
        \------/   | Force! |
                   +--------+

A wonderful educational tool. But I wonder how practical it would be
for day-to-day work...
