From: | "Pascal J. Bourguignon" <pjb@informatimago.com> |
Newsgroups: | comp.programming,comp.compilers,comp.editors |
Date: | Tue, 12 Apr 2011 05:21:29 +0200 |
Organization: | Informatimago |
References: | 11-04-009 11-04-022 |
Keywords: | code, editor |
Posted-Date: | 15 Apr 2011 15:49:19 EDT |
Ralph Boland <rpboland@gmail.com> writes:
> On Apr 8, 3:40 am, HiramEgl <hiram...@hotmail.com> wrote:
>> My name is Hiram and I would like to know if somebody is interested in
>> joining the development of a new kind of editor/Integrated Development
>> Environment/compiler.
> ...
>>
>> /Hiram
>> [There were structure based tools back in the 1970s. My recollection
>> is that they were completely unusable other than by the people who
>> wrote them. -John]
>
> Warning: Long, and possibly pointless post.
>
> I have always wanted to build a parser generator tool that also builds
> a syntax directed editor based on the grammar. Presumably this would
> make editing easier and the user would only need to know one editor
> though the editor would behave differently for different languages
> (grammars).
http://portal.acm.org/ft_gateway.cfm?id=358755&type=pdf
http://portal.acm.org/ft_gateway.cfm?id=954001&type=pdf
http://www.ics.uci.edu/~andre/ics228s2006/repsteitelbaum.pdf
But this was before the Internet and free software took over the world,
so nothing remains of it... Perhaps the results weren't satisfactory.
> The big issue though is that the syntax directed editor would need to
> be easy enough to use and productive enough that developers will
> actually use it. As John pointed out this is a major issue that
> should not be underestimated.
Indeed. And the point here is that it is often much easier to type
linearly:
x=a*square(x)+b*x+d;
than it would be to select the = operator, to click on the left box, to
type x, to click on the right box, to select the + operator, to click on
the left box, to select the * operator, to click on the left box, to
type a, to click on the right box, to search square in the list of
functions, to click on the argument list box, to type x, etc...
> It is also worth noting that this would be a lot of work, well unless
> I do it in Smalltalk. :-)
Or Lisp. But it would be not much work to synthesize the structural
editor from the grammar of the language. On the other hand, you
couldn't use the same grammar as the compiler: you would have to
annotate it to let the editor accept textual input for some
non-terminal, as shown above.
On the other hand, since it is hard to decide at what level in the
syntactic tree it is worthwhile to switch between the textual input and
the structured editing, perhaps we should let the user choose himself.
This is exactly what we get in emacs with things like paredit,
skeletons, abbrev, etc. The user gets to choose the level of structured
editing he wants to use.
Also, have a look at:
http://groups.google.com/group/comp.lang.lisp/msg/3050088218d355e5
--
__Pascal Bourguignon__ http://www.informatimago.com/
A bad day in () is better than a good day in {}.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.