Path: utzoo!mnetor!uunet!husc6!necntc!ames!ucbcad!ucbvax!hplabs!decwrl!labrea!glacier!jbn From: jbn@glacier.STANFORD.EDU (John B. Nagle) Newsgroups: comp.lang.modula2 Subject: Re: Language Sensitive Editors (was Re: M2Amiga, another bunch of answers) Message-ID: <17244@glacier.STANFORD.EDU> Date: 9 Dec 87 17:00:57 GMT References: <1221@sugar.UUCP> <1336@saturn.ucsc.edu> <3476@aw.sei.cmu.edu> <373@apr.UUCP> Reply-To: jbn@glacier.UUCP (John B. Nagle) Organization: Stanford University Lines: 33 Syntax-sensitive editors have been around for a while, one of the first being the Cornell Program Synthesizer running on a Terak in the mid 1970s. One of the basic problems with systems of this type is that they interfere with continuous typing, and are more a nusance than a help to fast typists. About three years ago, this idea showed up at a venture capital show as a "word processor for people who can't write", a mouse-driven system which, using menus and submenus, allowed the user to create text by selecting words, while restricting the user to valid English sentences. The user was restricted to a subset of English, but one broad enough to allow for most business needs. It was very slow and painful to use. The authors were unable to obtain funding. There are useful programming environments. Rational Machines has gone furthest in this direction. Their system is designed to coordinate the work of large teams of programmers developing integrated systems of Ada programs. Version control has been carefully thought out, so that one can express ideas such as development mainlines and sidelines, remerging divirgent development paths, and intelligent automatic recompilation including damping out of hidden changes. (This last would work nicely for Modula, too, with appropriate tools. The notion is that if A uses B and B uses C, and C changes, then B and C must be recompiled, but if the exported interface of B didn't change, then A need not be recompiled. This is non-trivial to implement, because if B imported a type from C and mentioned that type in an exported definition, then A really would have to be recompiled. In huge Ada programs, the cost of a low-level change can be very high without tools smart enough to do just the recompilations really needed, high enough that people hesitate to make changes in places where they should be made.) John Nagle