Path: utzoo!attcan!uunet!husc6!uwvax!tank!uxc!uxc.cso.uiuc.edu!m.cs.uiuc.edu!wsmith From: wsmith@m.cs.uiuc.edu Newsgroups: comp.software-eng Subject: Re: Structured Editor vs. Text Editor Message-ID: <39400004@m.cs.uiuc.edu> Date: 4 Nov 88 20:40:00 GMT References: <3385@pt.cs.cmu.edu> Lines: 59 Nf-ID: #R:pt.cs.cmu.edu:3385:m.cs.uiuc.edu:39400004:000:3212 Nf-From: m.cs.uiuc.edu!wsmith Nov 4 14:40:00 1988 I will try to briefly respond to the points raised by Johnny Martin. First, one should not make generalizations about an editor based on such a short description. Leif is a complex program that is more than a "background syntax checker." It contains an incremental parser that efficiently maintains a parse tree that may be consulted to visualize the syntactic structure of the program as well as locate errors. Leif is definitely not slow. Secondly, there are other ways of categorizing language oriented editors. Martin's categorization begs the question by implying that "True SDE's have great power" and thus must abandon text editing commands to provide this power. Leif does not yet provide all of the transformational power of the ideal philosopher's stone SDE but it provides enough power to be worthwhile. While emphasizing that a nice user interface is "a godsend," he assumes that text editing does not fit in such a user interface. Consider Richard Waters article "Program Editors Should not Abandon Text Commands." Syntax directed editing is possible within a framework of textual editing and Leif proves that. The transformation and holophrasting capabilities espoused by Martin are possible within the Leif framework although they have not been implemented yet. I believe researchers at Berkeley are also independently developing an editor with similar capabilities to Leif. Transformational commands are valuable, but is it possible to proved a complete set of such commands? Many transformations should be based on semantic information which may be unavailable because of undecidability of understanding some aspects of programs. Martin implies that a programmer only wants to use a language oriented editor on a fixed, standardized language. In my research, Leif demonstrates that there is a demand for easily constructed language oriented editors. In Leif, it takes only a few hours to create an useful editor once a lexical analyzer and LALR grammar have been written. The problem of creating a useful set of transformations is difficult and time consuming. Similarly, writing emacs lisp code to edit in a new language-sensitive mode is non-trivial. By quickly developing an editor for a special purpose language, the quality of the language may be improved through an iterative design process. This same design process may be used to teach compiler design techniques. Leif allows many different languages to be edited with no modifications to the user interface. The original question that started this discussion demonstrates that the design of language oriented editors still pose several research questions. The foremost research issue is the user interface. Leif provides a user interface that is radically different that that provided by Xinotech's Program Composer that Martin champions. Finally, evidence that language oriented editors (or syntax directed editors) are not a solved problem is that they are not widespread and they have only a limited user community. Research should continue to improve the tools available to programmers beyond the limited editing techniques available now. Bill Smith wsmith@cs.uiuc.edu uiucdcs!wsmith