Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 beta 3/9/83; site fluke.UUCP Path: utzoo!linus!decvax!microsoft!uw-beaver!ssc-vax!fluke!joe From: joe@fluke.UUCP (Joe Kelsey) Newsgroups: net.cog-eng Subject: Re: re: tops-20 command 'language' Message-ID: <1088@vax3.fluke.UUCP> Date: Tue, 23-Aug-83 11:51:37 EDT Article-I.D.: vax3.1088 Posted: Tue Aug 23 11:51:37 1983 Date-Received: Wed, 24-Aug-83 12:34:55 EDT References: sask.290, <1447@shark.UUCP> <212@cbosgd.UUCP> Organization: John Fluke Mfg. Co., Everett, Wash Lines: 47 It has always been my opinion that the "best" system to work on would be one that included the command completion and recognition capabilities of TWENEX (TENEX/TOPS-20), the hirearchical HELP facility from VMS in a UNIX environment. Mark mentioned that he didn't know how the notion of PATH would fit into a command completion environment - well it works just fine in TOPS-20! TOPS-20 logical names are much more flexible than those of VMS in that a logical name can include multiple directories - in effect a PATH specification. This works just fine if you define the logical name SYS: to be whatever your favorite PATH is. Command completion works such that if a builtin command does not match your typein, then the EXEC searches the SYS: path (first using your local definition, then using the system definition), for an executable file whose name either matches your typein or can be completed to match your typein, depending on context. Thus, TOPS-20 has always had the UNIX feature of being able to "create" new commands by simply naming the executable file, and including the directory where the file resides in your definition of SYS: (or by including DSK: (e.g. ".") in the path). I have also found that TOPS-20 was one of the more pleasant systems to administer. From a systems programming standpoint, I would rank TOPS-20 ahead of UNIX, simply because DEC is good at producing reams of documentation, which is still sorely lacking for UNIX. Command completion in TOPS-20 is not limited to just the EXEC (shell), but is available to any and all user programs who want to take advantage of the COMND jsys (system call). It would not be in the UNIX spirit to add a system call to do this, but you could certainly design a facility for compiling this kind of interface into programs (some combination of lex and yacc with probably a few mods to the kernel) to provide a more consistent user interface. People haven't mentioned one of the more recent innovations in TOPS-20, PCL (Programmable Command Language) from CMU. PCL provides a naive user access to all of the command completion facilities and an easy way to extend the EXEC in a consistent manner. PCL is an ALGOL-like language with integers and strings which is compiled by the EXEC to produce new commands. I would really like to see some sort of facility like this available on UNIX, if only for the fact that it would really encourage people to use a consistent user interface - something that UNIX sorely lacks! Well enough rambling for now. I'm no longer associated with a TOPS-20 system, and with the demise of Project Jupiter, it looks like DEC is giving up on TOPS-20 as well. Sigh. I can live with VMS and UNIX, but my heart belongs to the -20. /Joe