[net.lang] release of the Synthesizer Generator

synrels@cornell.UUCP (Synth. Release Acct.) (11/14/85)

RELEASE OF THE SYNTHESIZER GENERATOR
____________________________________

Thomas Reps and Tim Teitelbaum
Cornell University


     This notice is to announce the release of the Synthesizer Generator
and to provide information about it.

     The Synthesizer Generator is a tool for specifying how objects may
be edited in the presence of context-sensitive relationships.  The editor
designer prepares a specification that includes rules defining a language's
abstract syntax, context-sensitive relationships, display format, and concrete
input syntax. From this specification, the Generator creates a full-screen
editor for manipulating objects according to these rules.

     The Synthesizer Generator is particularly well suited for creating 
editors that enforce the syntax and static semantics of a particular language.
Each object to be edited is represented as a consistently attributed 
derivation tree.  When these objects are modified, some of the attributes may 
no longer have consistent values; incremental analysis is performed by
updating attribute values throughout the tree in response to modifications.
If an editing operation modifies an object in such a way that context-
dependent constraints are violated, the attributes that indicate satisfaction
of constraints will receive new values; thus, these attributes can be used
to annotate the display in order to provide the user with feedback about
the existence of errors.

     Editor specifications are written in the Synthesizer Specification
Language (SSL), which is based on the concepts of a term algebra and an
attribute grammar, although certain features are tailored to the application
domain of language-based editors.  The Synthesizer Specification Language
is described in:

       Reps, T. and Teitelbaum, T.  The Synthesizer Generator.
       In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering
       Symposium on Practical Software Development Environments,
       Pittsburgh, Penn., Apr. 23-25, 1984.
       (Appeared as joint issue: SIGPLAN Notices (ACM) 19, 5 (May 1984),
       and Soft. Eng. Notes (ACM) 9, 3 (May 1984), 42-48).

     The Synthesizer Generator has two components:
       
     a) a translator that takes an SSL specification as input, and
	produces grammar tables as output, and

     b) an editor kernel that consists of an attributed-tree data-type
	and a driver for interactively manipulating attributed trees;
	the kernel takes input from the keyboard and executes appropriate 
	operations on the current tree.

A shell program handles the details of invoking the translator and
producing a language-based editor from the resulting tables.

     The generator is written in C and runs under Berkeley UNIX
on VAX computers, but porting to other versions of UNIX is straightforward.
Editors generated with the Synthesizer Generator will work on any
crt terminal described in the UNIX termcap database. A version for the
Sun Workstation is in use at Cornell, and we intend to release it at a
later date. A keyboard description file specifies the layout of special
function keys used by the generated editors.

The distribution, which costs $200.00, is intended for research and
prototype construction (we are working on a distribution agreement that 
would apply to classroom and commercial use).  It consists of:
   a) Source and object code for the SSL translator and editor kernel.
   b) An SSL specification of a Pascal editor with full static-semantic 
      checking.
   c) A collection of demonstration editors.
   d) A copy of The Synthesizer Generator reference manual.

     To request further information about acquiring a copy of the system,
please mail us the form below.  We will send you a manual describing the
system and copies of the distribution agreement.


Please send information about acquiring the Synthesizer Generator to:


Name: 									

Affiliation: 								

Address:								
									
									
									

Do you hold a UNIX binary license? 					



Please respond by electronic mail to 
arpanet:synrels@gvax.cs.cornell.edu
uucp:	{ihnp4,vax135,decvax,allegra}!cornell!synrels
bitnet:	synrels@crnlcs.bitnet

or mail completed form to:

Prof. Tim Teitelbaum
Synthesizer Generator Distribution
Dept. of Computer Science, Upson Hall
Cornell University
Ithaca, N.Y. 14853