Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.albasani.net!feeder.news-service.com!xlned.com!feeder3.xlned.com!news.glorb.com!usenet.stanford.edu!news.iecc.com!nerds-end From: "Pascal J. Bourguignon" Newsgroups: comp.programming,comp.compilers,comp.editors Subject: Re: New editor/Integrated Development Environment/compiler Date: Tue, 12 Apr 2011 05:21:29 +0200 Organization: Informatimago Lines: 76 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <11-04-027@comp.compilers> References: <11-04-009@comp.compilers> <11-04-022@comp.compilers> NNTP-Posting-Host: news.iecc.com X-Trace: gal.iecc.com 1302896959 385 64.57.183.58 (15 Apr 2011 19:49:19 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Fri, 15 Apr 2011 19:49:19 +0000 (UTC) Keywords: code, editor Posted-Date: 15 Apr 2011 15:49:19 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9 033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR mV+hO/VvFAAAAABJRU5ErkJggg== Xref: x330-a1.tempe.blueboxinc.net comp.programming:236 comp.compilers:94 comp.editors:79 Ralph Boland writes: > On Apr 8, 3:40 am, HiramEgl 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 {}.