GMD Karlsruhe Toolbox - Cocktail

Josef Grosch <>
Tue, 8 Sep 1992 08:33:56 GMT

          From comp.compilers

Related articles
GMD Karlsruhe Toolbox - Cocktail (Josef Grosch) (1992-03-05)
GMD Karlsruhe Toolbox - Cocktail (Josef Grosch) (1992-09-08)
Need a LL(1) grammar of Pascal (1992-09-24)
| List of all articles for this month |

Newsgroups: comp.compilers
From: Josef Grosch <>
Organization: GMD Forschungsstelle Karlsruhe
Date: Tue, 8 Sep 1992 08:33:56 GMT
Keywords: tools, FTP, parse, attribute, LALR, LL(1)

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)

          toolbox - tool box for compiler construction

          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.

          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

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

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

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

          host : =
          login : anonymous
          directory : /pub/cocktail

          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

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

          Tel: +721-6622-26
          Fax: +721-6622-968

          Source licence: 500 DM or 250 US $


- 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

- 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

- 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

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.