From: grosch@karlsruhe.gmd.de (Josef Grosch)
Newsgroups: comp.compilers
Subject: GMD Karlsruhe Toolbox - Cocktail
Keywords: tools, FTP, parse, attribute, LALR, LL(1)
Date: 8 Sep 92 08:33:56 GMT
Reply-To: Josef Grosch  <grosch@karlsruhe.gmd.de>
Organization: GMD Forschungsstelle Karlsruhe

A new version (9208) of the GMD Toolbox for Compiler Construction - also
known as Cocktail (Compiler-Compiler-Toolbox Karlsruhe) - is now available
via anonymous ftp:


TOOLBOX(1)       GMD-Forschungsstelle-Karlsruhe        TOOLBOX(1)


NAME
     toolbox - tool box for compiler construction

DESCRIPTION
     Toolbox is a set of program generators or compiler
     construction tools for nearly all phases of a compiler. The
     compiler construction tools support the automatic generation
     of compilers for imperative programming languages. The
     design goals for this tool box were practical usability,
     significantly reduced construction effort for compilers, and
     high quality of the generated compilers. Especially with
     respect to efficiency the tools are competitive to
     programming by hand. Currently the tools can generate
     compiler modules in the target languages C and Modula-2.
     First realistic applications demonstrate the excellent
     performance of the tools and show that the tools allow the
     construction of production quality compilers.

TOOLS
     Rex     generator for lexical analyzers
     Lalr    LALR(1) parser generator
     Ell     LL(1) parser generator
     Ast     generator for abstract syntax trees
     Ag      generator for attribute evaluators
     Puma    transformation of attributed trees using pattern matching
     Reuse   library of reusable modules

IMPLEMENTATION LANGUAGES
     C (ANSI + K&R) or Modula-2

TARGET LANGUAGES
     C (ANSI + K&R), C++, or Modula-2

PLATFORMS
     DEC Station / ULTRIX
     VAX / ULTRIX or BSD UNIX 4.2
     SUN 3 or SUN 4 / SunOS
     NEXT / MACH
     PCS Cadmus / MUNIX
     others

FILESERVER
     host	: ftp.karlsruhe.gmd.de = 192.76.241.33
     login	: anonymous
     directory	: /pub/cocktail

DISTRIBUTION
     Medium: DC 300 data cartridge, TK 50, Exabyte, or 1/2" magnetic tape
     (1600 bpi) in tar format

     source programs in Modula-2 as well as in C
     documentation in troff- and Postscript-format
     example specifications

CONTACT
     Josef Grosch
     GMD Forschungsstelle an der Universitaet Karlsruhe
     Vincenz-Priesznitz-Str. 1
     D-7500 Karlsruhe
     Germany

     Tel: +721-6622-26
     Fax: +721-6622-968
     E-Mail: grosch@karlsruhe.gmd.de

TAPE HANDLING FEE
     Source licence: 500 DM or 250 US $

RECENT CHANGES

- The scanner generator 'rex' and the parser generators 'lalr' and 'ell'
  allow to chose arbitrary names for the generated modules. Therefore, it is
  possible to have several scanners and parsers in one program.

- The length of a token and the lookahead in scanners generated by 'rex' is no
  longer restricted to 256 characters. Both, tokens and lookahead can be of
  arbitrary length. A restriction in the size of the tables generated by
  'lalr' has been removed. Now it is possible to generate rather huge
  parsers.

- The attribute grammar tool 'ag' has been extended to generate attribute
  evaluators for well-defined attribute grammars (WAGs). The program checks
  grammars whether they obey this property. It is possible to access
  non-local attributes and to compute attributes on a restricted form of
  graphs.

- The auxiliary modules 'Errors' and 'Source' have been included into the
  library of reusable modules called 'reuse'. The 'Errors' module has been
  extended to support messages with a string argument. It allows to store
  the messages and print them sorted by the source position. An extra module
  named 'Positions' has been introduced in 'reuse', too, for the handling of
  source positions.

- The program 'cg' which implements 'ast' and 'ag' accepts several input
  files.  Instead of one file that communicates a tree definition to
  'puma' with the fixed name 'TREE.TS' it is possible to produce several
  of those with different names. This is of interest if different "views"
  have to be communicated.

- The extern declarations for malloc, free, and exit have been removed from
  the generated C code.

- All tools do not generate # line directives by default, only upon request.

- In case of fatal errors during the execution of generated modules a user
  defined exception routine can be called instead of the predefined 'exit
  (1)'.
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.