[comp.software-eng] Language-based editors

ml@mhres.mh.nl (Marco Luiten) (07/26/88)

I am looking for product information about language-based editors.
The editor I am looking for should support the following functionality:

- It must support more than one computer language, preferably ALL
  structured text.
- It must be available at more than one operating system, preferably
  UNIX, VMS and MS-DOS, or the source should be available.
- It should edit language-elements like statements/-parts instead of
  characters/lines/etc.
- It should be a WYSIWYG-editor.

I only know of one such product: The Synthesizer Generator from the
Cornell University. 

"The synthesizer Generator creates a language-specific editor from an
 input-specification that defines a language's abstract syntax, context
 sensitive relationships,..."

I have two questions:

1. How and where can I order this Synthesizer Generator?
2. Are there any similar products available?

Thanks in advance.
-- 
Marco Luiten

henk@hcsrnd.UUCP (Henk Willems) (07/28/88)

In article <2135@mhres.mh.nl>, ml@mhres.mh.nl (Marco Luiten) writes:
> I am looking for product information about language-based editors.
> The editor I am looking for should support the following functionality:
> 
> - It must support more than one computer language, preferably ALL
>   structured text.
> - It must be available at more than one operating system, preferably
>   UNIX, VMS and MS-DOS, or the source should be available.
> - It should edit language-elements like statements/-parts instead of
>   characters/lines/etc.
> - It should be a WYSIWYG-editor.
> 
> I only know of one such product: The Synthesizer Generator from the
> Cornell University. 
> 
> "The synthesizer Generator creates a language-specific editor from an
>  input-specification that defines a language's abstract syntax, context
>  sensitive relationships,..."
> 
> I have two questions:
> 
> 1. How and where can I order this Synthesizer Generator?
> 2. Are there any similar products available?
> 
> Thanks in advance.
> -- 
> Marco Luiten

The synthesizer generator can be ordered at : 

Liz Maxwell
Synthesizer Generator Distribution

Department of Computer Science
4130 Upson Hall
ITHACA.N.Y 14853-7501
Telephone 607/255-5331
Telex WUI 6713054
Net : maxwell@gvax.cs.cornell.edu

I hope the address is good, a copied it from a bad copied paper.
I do not know similar products.

Yours sincerely

Henk Willems
HCS Industrial Automation BV.
Landrostlaan 51
P.O. Box 20020
Telef: 055-498600
The Netherlands

jsedayao@td2cad.intel.com (Jeff Sedayao ) (07/29/88)

In article <2135@mhres.mh.nl> ml@mhres.mh.nl (Marco Luiten) writes:
>I am looking for product information about language-based editors.
>The editor I am looking for should support the following functionality:
>
>- It must support more than one computer language, preferably ALL
>  structured text.
>- It must be available at more than one operating system, preferably
>  UNIX, VMS and MS-DOS, or the source should be available.
>- It should edit language-elements like statements/-parts instead of
>  characters/lines/etc.
>- It should be a WYSIWYG-editor.
>
>I only know of one such product: The Synthesizer Generator from the
>Cornell University. 

What about emacs?  It has a number of language sensitive modes, and 
you can make up your own modes if you want.  There are also versions 
for MS-DOS, VMS, and UNIX.  I am not sure if the Synthesizer Generator
runs on VMS or MS-DOS.  These are not mentioned in my manual, but 
versions could exist.

>"The synthesizer Generator creates a language-specific editor from an
> input-specification that defines a language's abstract syntax, context
> sensitive relationships,..."

That it does.  The input language is a bit crusty, though, as is some
of its user interface.  What I really like about it is that it allows
the user to put up templates of the language and all you have to do
is fill in the blanks.  The generator comes with specifications already
made for pascal and c.  Source is also included (there's lots of it!).

>I have two questions:
>
>1. How and where can I order this Synthesizer Generator?

Send mail to Liz Maxwell at maxwell@gvax.cs.cornell.edu
She will be able to tell you how to get the editor.

>2. Are there any similar products available?

There is emacs, like I mentioned above.  There is also something called
LEIF which is a tool built on top of emacs.  I am not sure how to get
it.  Also, at UC Berkeley, there is an editor called pan that is
language sensitive.  You can ask Susan Graham graham@renoir.berkeley.edu
about getting it.  Pan is limited to running on suns, though.

>Thanks in advance.
>-- 
>Marco Luiten
-- 
Jeff Sedayao               Disclaimer: My opinions, not those of
Intel Corporation                      my employers
{oliveb,hplabs,decwrl,amdcad,pur-ee,qantel}!intelca!mipos3!td2cad!jsedayao 
jsedayao%td2cad.intel.com@relay.cs.net 

liberte@m.cs.uiuc.edu (07/30/88)

Here is a repost of our earlier announcement.

------

We have released Leif, a language oriented editor that is based on 
a recognition paradigm.  In a recognition paradigm the programmer enters 
text and the editor incrementally analyzes this text to determine structure.  
Many other language oriented editors are based on templates.  In these 
editors, the program is constructed by expanding templates.  Template 
editors prevent the creation of syntax errors by restricting the possible 
edits.  In Leif, the programmer may use all of the text editing commands 
of a host editor (GNU Emacs) to create a program.  The programmer may also 
use language oriented commands.  At any point, the syntax analysis may be 
consulted to locate syntax errors or display the structure of the program.

By using a standard text editor as the front end, Leif offers several benefits. 
First, there is very little overhead in learning to use Leif.  By learning 
only one new command, the "move to syntax error" command, Leif can be useful.  
Other commands allow a programmer to see the structure of the program or 
examine a syntax error.  A second benefit is that the user can edit the 
program as text or as syntax simultaneously.

Leif has respectable performance.  It uses an incremental parsing algorithm
to analyze changes to the text and to maintain a parse tree.  If a change is 
made that affects only a local part of the parse tree, only that part is
Analysis does not occur on every key stroke.  Instead, Leif allows any 
number of consecutive changes to be processed as a unit. The programmer may 
use Leif transparently and request information from the parser when it is 
needed.  Once started, Leif does not require any actions by the programmer 
for it to follow an editing session.  Until a Leif command is activated, 
the user does not notice any change in the editor.  This translates into an 
efficiency benefit and further enhances the ease of use.

A language for Leif is specified as a lexical analyzer and LALR(1) grammar.
Standard tools, Lex and Bison (similar to Yacc), are used to process the
specification.  Once the tables produced by these tools have been converted
into an appropriate parse table format, Leif use the tables and edit text 
in the language.  Prototyping the syntax of a language is easy and a 
designer of a language may specify a language and experiment with it quickly.  
The language need not be a programming language, but could instead be a 
specification, design or text processing language as long as a language 
fits in the lexical analyzer and parser paradigm.   

Leif is available via anonymous ftp from a.cs.uiuc.edu.  The files are 
located in the subdirectory pub/Leif.  Consult the file README.DIST that
is in that directory to decide which files to retrieve.  Documentation
is available in the file leif-doc.tar.Z.  (If you are unable to retrieve
the files via ftp, please contact us.)

Please send Leif related queries to ihnp4!uiucdcs!leif or leif@a.cs.uiuc.edu

Bill Smith,	Dan LaLiberte,	Roy Campbell

bertrand@hub.ucsb.edu (Bertrand Meyer) (07/31/88)

This is a follow-up to <2135@mhres.mh.nl>, where ml@mhres.mh.nl
(Marco Luiten) writes:

> I am looking for product information about language-based editors.
> 
> (...)
> 
> I only know of one such product: The Synthesizer Generator from the
> Cornell University. 
> 
> 1. How and where can I order this Synthesizer Generator?
> 2. Are there any similar products available?


I believe our Cepage editor fulfils the stated criteria.
This is a commercial product. Cepage is certainly
WYSIWIG (although it works for character-oriented terminals and does not use
graphics or the mouse for the moment).  It supports both structural (menu-driven)
entry and keyboard input (which is parsed). For keyboard-driven input,
a text editor is included.  In this mode, you may skip parsing if you want
to enter temporarily incorrect input; you can come back later on, correct
or complete your entry, and have it parsed then.

An important aspect of the Wysiwig aspect is the presence of a completely
automatic algorithm for document formating (including indentation, adaptation to
the available window space, layout etc.). The algorithm was described in a
rather extensive article by myself, J-M Nerson and Soon-Hae Ko in Science of Computer
Programming, 1985. (Sorry, I don't have the exact issue and page numbers offhand
but they should be easy to find.) The article describes the formatting algorithm
and provides parts of a formal proof.

The most original aspect of Cepage is the ease of adaptation to any language.
Grammars are described in a simple formalism called LDL (Language Description
Language). There is no restriction such as LR (k) or similar. Grammars can
be written quickly and then changed easily, to accommodate local variants or
specific programming or documentation styles. The system comes with pre-written
grammars for Pascal, C, Troff, Lisp, Ada, Fortran. As the Troff example shows,
the applications of Cepage are not restricted to programming languages;
for example you can apply it to standardized technical documentation.

The system is written in the Eiffel object-oriented language and runs wherever
Eiffel runs, which means Unix (Sun, Apollo, Ultrix, HP etc.) and, soon,
VAX-VMS.

Various references have been published on an older version of Cepage, including
the one mentioned above and a paper called ``Cepage: A Software Design Tool''
that I published in Computer Language, September 1986. We have more up-to-date
reports of which I can send copies on request.


Bertrand Meyer
Interactive Software Engineering Inc.
270 Storke Road Suite 7
Goleta, CA 93117 - (805) 685-1006

oz@yunexus.UUCP (Ozan Yigit) (08/02/88)

In article <2135@mhres.mh.nl> ml@mhres.mh.nl (Marco Luiten) writes:
>I am looking for product information about language-based editors.
>The editor I am looking for should support the following functionality:
> ...
>Marco Luiten

University of Illinois @ Urbana has a language-sensitive and
programmable editor, used to be known as FRED. [I do not know its
recent name] I think it may be available via anon.  ftp from
uiuc.cs.edu. It is wysiwyg, works with partial language grammars,
programmable, and the last time I looked, it did handle C and
Pascal. It allows one to define a grammar for a language one wishes
to edit, and partial grammars allow it to do a reasonable job with
minimal language knowledge. It is in C, and sources are [were]
available.

oz

-- 
Crud that is not paged	        | Usenet: ...!utzoo!yunexus!oz
is still crud. 			| ....!uunet!mnetor!yunexus!oz
	andrew@alice		| Bitnet: oz@[yulibra|yuyetti]
				| Phonet: +1 416 736-5257x3976