Catalog of Compiler Construction Products

This posting may be reproduced in any form without further permission, as long as it is left unchanged. January 1996, Olaf Langmack.

FIFTH ISSUE

This catalog lists products and services for the construction of programming language compilers and related programming tools. It covers compiler generators, corresponding grammars, reusable parts of compilers, reusable parts of other programming tools and related consulting or programming services.

The catalog provides only technical information. Potential customers have to inquire at the given address about prices and licensing policies.

All the listed products are available now in a form suitable for production use. They shall exhibit professional quality and have long term support.

The entries are submitted voluntarily. Apart from tracking complaints about inappropriate entries no quality control of the entries is applied. Therefore I do not assume any liability for listed entries. (For a catalog of free software see the "Catalog of Free Compilers and Interpreters".)

The catalog is posted regularly on comp.compilers. If you want to submit an update send the filled form to langmack@netmbx.netmbx.de. Updates that do not make use of the form or do not comply with the guidelines given at the end will not be considered.

CHANGE NOTE

A topic "WEB" has been added to the entry form.

Table of Contents


Adrian Johnstone

ADDRESS
  Dr Adrian Johnstone
  Department of Computer Science
  Royal Holloway, University of London
  Egham
  Surrey
  United Kingdom

CONTACT
  Dr Adrian Johnstone
  Phone +44 (0)1784 443425  Fax +44 (0)1784 443420
  E-Mail adrian@dcs.rhbnc.ac.uk

TOOL
  Recursive Descent Compiler generator
    RDP
  Features
    RDP takes an attributed very-extended BNF and analyses it for
    LL(1) conformance providing detailed error and warning messages.
    It outputs ANSI C and links against a library of general purpose
    routines that provide set handling, command line switch processing,
    symbol table management and more. RDP is very easy to use.
  Distribution
    All source in ANSI C, compiler-compiler source in BNF, various
    examples. Complete distributions available from
    ftp://cscx.cs.rhbnc.ac.uk:/pub/rdp
  Platform
    MS-DOS / Borland-C
    MS-DOS / Microsoft C
    Many flavours of Unix with gcc and vendors' compilers
    Macintosh / Think C
    Macintosh / metroWorks C
    Acorn Archimedes
    Amiga

CoCoLab

ADDRESS
  CoCoLab
  Dr.-Ing. Josef Grosch
  Hagsfelder Allee 16
  D-76131 Karlsruhe
  Germany

CONTACT
  Josef Grosch
  Phone +49-721-697061 Fax +49-721-661966
  E-Mail grosch@cocolab.sub.com

TOOL
  Toolbox for compiler construction
    Cocktail
  Features
    - set of program generators for nearly all phases of a compiler
    - designed especially for practical usability, efficiency, and the
      generation of production quality compilers
    - target languages are C, C++, Modula-2, and in part Ada or Eiffel
  Distribution
    - C source code (obfuscated)
    - 3.5" floppy disks or DC6150 data cartridge (150MB streamer tape)
    - documentation in Postscript-, troff- and ASCII-format
  Platform
    - all/UNIX
    - PC/MS-DOS, Windows, OS/2, Linux

TOOL
  Scanner generator
    Rex
  Features
    - very efficient wrt. speed, table size, and generation time
    - provides source position (line and column) for every token
    - several scanners in one program are possible
    - does not have arbitrary restrictions: unlimited token length,
      unlimited length of lookahead, extremely big scanners
  Distribution and Platform
    like Cocktail

TOOL
  Parser generator
    Lark
  Features
    - generates table-driven parsers for LALR(1) and LR(1) grammars
    - explains LR conflicts and generates very efficient parsers
    - provides automatic error handling (reports, recovery, repair)
    - semantic predicates can control parsing by conditions
    - support for backtracking parsing with unlimited lookahead
  Distribution and Platform
    like Cocktail

TOOL
  Parser generator
    Ell
  Features
    - generates recursive descent parsers for LL(1) EBNF grammars
    - provides automatic error handling (reports, recovery, repair)
    - generates very efficient parsers
    - synthesized and inherited attributes can be computed
  Distribution and Platform
    like Cocktail

TOOL
  Generator for abstract syntax trees
    Ast
  Features
    - generates abstract data types for attributed trees and graphs
    - provides numerous operations on trees and graphs
    - eases node construction and storage allocation
    - provides ASCII and binary graph reader and writer
    - generates interactive graph browser
  Distribution and Platform
    like Cocktail

TOOL
  Generator for attribute evaluators
    Ag
  Features
    - generates efficient attribute evaluators for:
    - ordered attribute grammars (OAG)
    - well-defined attribute grammars (WAG)
    - "higher order" attribute grammars (HAG)
  Distribution and Platform
    like Cocktail

TOOL
  Transformation of attributed trees
    Puma
  Features
    - supports efficient transformation + mapping of attributed trees
    - based on pattern matching, uses a concise Prolog-like notation
    - areas of application include: semantic analysis, optimization,
      source to source translation, (intermediate) code generation
    - supports tree handling: type checking, construction, analysis
  Distribution and Platform
    like Cocktail

TOOL
  Library of reusable modules
    Reuse
  Features
    - subroutine library for services needed in every compiler
    - dynamic and flexible arrays
    - storage of strings of arbitrary length
    - identifier table: unambiguous encoding of strings (hashing)
    - error handler for parsers and compilers
  Distribution and Platform
    like Cocktail

TOOL
  Preprocessors
    Rpp, Lpp, L2r, Y2l, R2l
  Features
    - Rpp Rex  preprocessor: extracts scanner description from grammar
    - Lpp Lark preprocessor: checks attribution rules of a grammar
    - L2r converts Lex  input to Rex  input
    - Y2l converts Yacc input to Lark input
    - R2l converts Rex  input to Lex  input
  Distribution and Platform
    like Cocktail

TOOL
  Modula-2 -> C translator
    Mtc
  Features
    - converts Modula-2 programs into readable C code (ANSI + K&R)
    - works 100 % automatically
    - nested procedures and modules are handled
    - translates Modula-2 as defined in:
      "N. Wirth: Programming in Modula-2, Third Corrected Edition"
  Distribution and Platform
    like Cocktail

GRAMMAR
  Scanner and parser description
    COBOL 85 (ANSI X3.23 - 1985)
  Tool
    Rex and Lark
  Distribution
    like Cocktail

GRAMMAR
  Scanner and parser description
    COBOL union (ANSI'74 Standard, ANSI'85 Standard, IBM OS/VS COBOL,
    IBM VS COBOL II, IBM SAA COBOL/370, IBM DOSVS COBOL, X/Open, and
    Micro Focus COBOL)
  Tool
    Rex and Lark
  Distribution
    like Cocktail

COMPONENT
  Parser and syntax tree construction
    COBOL union (ANSI'74 Standard, ANSI'85 Standard, IBM OS/VS COBOL,
    IBM VS COBOL II, IBM SAA COBOL/370, IBM DOSVS COBOL, X/Open, and
    Micro Focus COBOL)
  Features
    - dialect is controlled by activating different sets of keywords
    - handles COPY and REPLACE statements including REPLACING clause
    - constructs around 70 KB of tree for 1000 source lines
    - performs name analysis, constructs symbol table, checks names
    - speed is 1000 lines/sec. on SPARC ELC, generated using Cocktail
  Distribution and Platform
    like Cocktail

COMPONENT
  Parser and syntax tree construction
    PL/I (DIN 66 255, IBM OS PL/I)
  Features
    - a symbol table and a transformation module differentiate whether
      constructs like F(X) are subscription, function_reference, or
      builtin_function_reference
    - embedded statements for SQL, CICS, and DLI are skipped
    - is generated using Cocktail
  Distribution and Platform
    like Cocktail

COMPONENT
  Preprocessor
    PL/I preprocessor (IBM OS PL/I)
  Features
    - contains scanner, parser, syntax tree, and interpreter
    - is generated using Cocktail
  Distribution and Platform
    like Cocktail

GRAMMAR
  Scanner and parser description
    FORTRAN-77 (ANSI X3.9 - 1978)
  Tool
    Rex and Lark
  Distribution
    like Cocktail

GRAMMAR
  Scanner and parser description
    Fortran-90 (ISO/IEC 1539: 1991 (E), ANSI X3.198-1992)
  Tool
    Rex and Lark
  Distribution
    like Cocktail

RELATED SERVICES
  Consulting, training, maintenance, development, research, projects
  in the areas of compiler construction, programming languages,
  software reengineering, source to source translation, dialect
  conversion, programming convention checkers, etc.

Compiler Resources

ADDRESS
  Compiler Resources, Inc.
  85 Main Street, Suite 310
  Hopkinton, MA  01748
  USA

CONTACT
  Barbara Zino
  Phone 1 (508) 435-5016  Fax 1 (508) 435-4847
  E-Mail compres@world.std.com

TOOL
  OO Lexer and Parser Generator for C++ and Class Library
  Yacc++ and the Language Objects Library
  Features
    Outputs C++ classes of lexers and parsers and optionally for
    tokens, non-terminals, and rules as specified in the grammar.
    Regular expressions integrated with BNF, LALR & LR, grammar
    inheritance.  Library support for various AST, input, error,
    and symbol table classes.  Email for complete online information.
  Distribution
    The Yacc++ generators are shipped as executables (sources
    available) and the Language Objects Library is shipped as
    C++ source code and pre-compiled for supported targets.
    Numerous examples and makefiles are included.  Printed
    manuals include Installation, Tutorial, and Reference Guides.
  Platform
    DOS/Windows Borland, Microsoft, and Watcom C++
    HP-UX HP C++
    OS/2 Borland and IBM C++
    Solaris SPARCCompiler C++
    SunOS Sun and GNU C++
    Windows NT/95 Microsoft C++
    Portable -- other platforms by cross-compiling.

Edison Design Group

ADDRESS
  Edison Design Group
  4 Norman Road
  Upper Montclair, NJ 07043
  USA
CONTACT
  Steve Adamczyk
  Phone +1 201 744 2620  Fax +1 201 744 8949
  E-Mail jsa@edg.com

TOOL
  Compiler Front End
    EDG C++ Front End
  Features
    Does full syntax and semantic analysis on C++ source code, producing
    an AST-like internal representation.  Accepts most of the modern features
    of the language, e.g., templates, exceptions, RTTI, new-style casts,
    array new/delete, namespaces.  Also accepts ANSI/ISO C and several older
    dialects of both C and C++.  This is a commercial product.
  Distribution
    Source code and internal documentation
  Platform
    Portable; has been used on all major Unix platforms, plus Windows NT.

GrammaTech, Inc.

ADDRESS
  GrammaTech, Inc.
  One Hopkins Place
  Ithaca, NY  14850
  USA
CONTACT
  Jeff Burns
  Phone 607-273-7340 Fax 607-273-8752
  E-Mail jeff@grammatech.com

TOOL
  CASE tool generator
    Synthesizer Generator
  Features
    CASE tool generator for implementing language-sensitive editors and
    user interfaces, including program editors, document preparation
    systems, and program verification tools. Uses attribute grammars to
    compute derived information about the object being edited and
    incrementally recomputes attribute values after an editing change.
  Distribution
    object
  Platform
    SunOS, Solaris, HP-UX, IBM AIX, and Digital UNIX

RELATED SERVICES
  The Synthesizer Generator may be licensed directly from GrammaTech
  or GrammaTech can perform customizations or create custom
  implementations.

NULLSTONE

ADDRESS
  Nullstone Corporation
  3336 Medallion Court
  Pleasanton, CA  94588
  USA
WEB
  http://www.nullstone.com
CONTACT
  Christopher Glaeser
  Phone (800) 634-5990 International +1 (925) 461-5990
  Fax +1 (925) 461-5991
  E-Mail cdg@nullstone.com
TOOL
  NULLSTONE Compiler Performance Analysis Tool
  Features
    The NULLSTONE Automated Compiler Performance Analysis Tool (tm) uses a QA
    approach of test coverage and isolation to measure an optimizer.
    The NULLSTONE methodology increases compiler performance by:
      * Isolating performance regressions and defects;
      * Identifying opportunities for improvements;
      * Establishing development completion criteria; and
      * Providing detailed competitive data.
  Language
    ANSI C
  Distribution
    Complete sources.
  Platform
    UNIX, WinNT, Win3.1, OS/2, DOS, MacOS.
    SPARC, PowerPC, Pentium, x86, MIPS, 68K, and others.

OCCL

ADDRESS
  Oxford and Cambridge Compilers Limited
  55 Brampton Rd
  Cambridge CB1 3HJ
  UK

CONTACT
  Dave Lloyd
  Phone (+44) 1223 572074
  E-Mail dave@occl-cam.demon.co.uk

RELATED SERVICES
  OCCL produces commercial compilers for Algol 68 and Fortran 90 on
  a variety of platforms. This technology is available for bespoke
  applications such as custom languages or tools. OCCL also provides
  consultancy and support for other compiler toolsets such as GNU
  or PCCTS.

Parr Research Corporation

ADDRESS
  Parr Research Corporation
  1535 Francisco Street Suite 9
  San Francisco, California 94123
  USA
CONTACT
  Dr. Terence Parr
  Phone 415 346 1070
  E-Mail parrt@parr-research.com

TOOL
  Parser generator
    ANTLR
  Features
    ANTLR constructs human-readable recursive-descent parsers in
    C or C++ (soon Java) from predicated-LL(k>1) grammars.  Many
    context-sensitive languages and languages requiring infinite
    lookahead are recognizable with ANTLR parsers.  Can automatically
    build ASTs.  Has new and powerful error recovery mechanism.
  Distribution
    Complete C source code, totally public domain.  Free at site
    ftp://ftp.parr-research.com/pub/pccts/.
  Platform
    Any platform that compiles C or C++.  Specific Mac port
    available as well as binaries/makefiles for PC compilers.

TOOL
  AST transformer / walker (source-to-source translation)
    SORCERER
  Features
    A SORCERER grammar describes AST content and structure.  You may
    annotate the grammar with actions to effect a translation or
    manipulate the tree itself.  Generates recursive-descent tree
    walkers in C or C++ (soon Java).  Same flavor/syntax as ANTLR.
    Not tied to a parser generator or any other tool.
  Distribution
    Complete C source code, totally public domain.  Free at site
    ftp://ftp.parr-research.com/pub/pccts/sorcerer/.
  Platform
    Any platform that compiles C or C++.

RELATED SERVICES
  Parr Research Corporation continues to enhance and maintain PCCTS.
  We support the tools via maintenance agreements, short term
  contracts, and collaborations.  We also develop custom translators
  and provide technical assistance for language design and
  implementation development.

ENTRY FORM

ADDRESS
  <provider>
  <building,department>
  <street>
  <state,city>
  <country>
WEB
  <URL>
CONTACT
  <name>
  Phone <number> Fax <number>
  E-Mail <address>

TOOL
  <type>
    <name>
  Features
    <text>
  Distribution
    <source, object, list of media>
  Platform
    <list of operating system and hardware>

GRAMMAR
  <type>
    <programming language, version, standard>
  Tool
    <name>
  Distribution
    <list of media>

COMPONENT
  <type>
    <programming language, version, standard>
  Features
    <text>
  Distribution
    <source, object, list of media>
  Platform
    <list of operating system and hardware>

RELATED SERVICES
  <text>

Guidelines

GUIDELINES for using the entry form: Please replace the text in angle brackets (<>) with the relevant information. The form provides four topics: TOOL, GRAMMAR, COMPONENT and RELATED SERVICES. There has to be at least one of these topics, but at most one RELATED SERVICES. The topics are described by several subtopics. Subtopics may be omitted if the information is available from the context. Subtopics <text> may be answered with up to five lines of free form ASCII text. Lines shall not be more than 70 characters long, they should be indented properly. All other subtopics shall be described with only a few words. "Feature" descriptions should cover input, output and implementation languages.

----------------------------------------------------------------------
END OF CATALOG                                                   01-96
----------------------------------------------------------------------