[mod.compilers] Lex and Yacc like tools

johnl@ima.UUCP (03/22/87)

The last STUG (Software Tools Users' Group) tape I saw had Yacc and
Lex-like tools written in Ratfor which more-or-less ran under VMS.
Paul Tarvydas
...!utcsri!tarvydas
[My copy of software tools is a PC version which is very obsolete.  Anybody
used these more recent ones?  -John]
--
Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.ARPA
Plausible paths are { ihnp4 | decvax | cbosgd | harvard | yale | cca}!ima
Please send responses to the originator of the message -- I cannot forward
mail accidentally sent back to compilers.  Meta-mail to ima!compilers-request

johnl@ima.UUCP (04/06/87)

GMD - Forschungsstelle an der Universitaet Karlsruhe - Projekt UWE
 
We distribute the following tools for compiler construction:
 
 
                              The PGS System
 
 The parser generator system PGS constructs out of a given grammar
tables to control a table-driven LALR(1) parser. The input consists of a
contextfree grammar in extended BNF notation. Possible LR conflicts can be
resolved by providing so called modifications. The grammar rules can be
augmented by actions to perform syntax-directed translation. The output are
parse tables and a table-driven parsing routine in PASCAL. The parse
tables can be generated to make use of LR(0) reductions and the elimination
of chain reductions. Optimization of the table representation using graph
coloring allows to store the tables efficiently. The parsing routine han-
dles syntax errors using a backtrack-free correction strategy. All syntax
errors are transformed to correct program phrases by eventually imaginary
deletion or insertion of symbols. Therefore all executed action sequences
belong to syntactically correct programs and the succeeding compiler phases
don't have to deal with syntax errors. The error recovery does not affect
the parsing performance of correct programs. The error recovery is fully
automatic, no extra specification is required in the input grammar. There
are some possibilities to influence the behaviour of the error recovery.
 
PGS is implemented in Standard Pascal (according to BSI Standard 6192)
and also generates Standard Pascal programs. PGS can be configured to gen-
erate SLR(1) or LR(1) parsers as well as LALR(1) parsers.
 
 The price for the PGS system is US $ 200 for non-commercial research
purposes and US $ 3000 otherwise.
 
 
                              The GAG System
 
 GAG is a generator based on attributed grammars. It can be used to
generate a complete compiler front end including semantic analysis out of a
language specification. The input of GAG is an attributed grammar written
in ALADIN. The contextfree grammar can be specified in extended BNF nota-
tion. The attribute evaluation rules are formulated in ALADIN which can be
viewed as a functional programming language. GAG checks the attribute gram-
mar for well definedness, that means whether it is complete, consistent and
non-cyclic. GAG processes the class of ordered attribute grammars (OAGs).
This is the largest class whose evaluation strategy can be precomputed at
generation time. The output of GAG are tables, so called visit sequences,
to control a table-driven attribute evaluator. The internal representation
of attributes is optimized using global variables and global stacks when-
ever possible. To construct a complete compiler front end a scanner frame
work and an interface to a parser generator (e. g. PGS) is provided.
 
     The GAG system is documented in the literature:
 
     U. Kastens et al.: "GAG - a  Practical  Compiler  Generator",  Lecture
     Notes in Computer Science, Vol. 141, Berlin: Springer, 1982.
 
 This book serves as documentation for the system: it contains an
introduction which gives a survey of the system and a reference manual of
the input language of the system, ALADIN. Furthermore, it contains a guide
for developing an Attribute Grammar by explaining an AG for Pascal. The
complete AG for Pascal is attached as an appendix.
 
 The GAG system is implemented in Standard Pascal (according to BSI
Standard 6192) and also generates Standard Pascal programs.
 
 The price for the GAG system is US $ 200 for non-commercial research
purposes and US $ 3000 otherwise.
 
 
                              The CGSS System
 
     The Code Generator Synthesis System CGSS is a code generator generator
based on the ideas of Graham and Glanville. The system is documented in the
literature, e.g.
 
     R. Landwehr et al.: Experience with an Automatic Code  Generator  Gen-
     erator, Proceedings of the Sigplan '82 Symposium on Compiler Construc-
     tion, SIGPLAN Notices, Vol. 17, No. 6.
 
     H.-S. Jansohn et al.:  Generating  MC68000  Code  for  ADA,  1983  ACM
     Conference  on  Personal and Small Computers, SIGPC Notes, Vol. 6, No.
     2.
 
     Of the several tasks of a code generator, CGSS is primarily  concerned
with code selection. The input of CGSS is a target machine description. The
instructions of the target machine are characterized by syntactic  patterns
which  describe a subtree of the intermediate language. Optional conditions
based on an attribution mechanism can be used to restrict the applicability
of  instructions.  The  output of CGSS are tables to drive a code generator
kernel. The  input  of  this  code  generator  kernel  is  an  intermediate
language,  which  is  a  tree  in linearized prefix form. Syntactic pattern
matching is performed on this tree with a LALR(1)-parser. Whenever  a  pat-
tern  matches the associated machine instruction is emitted and the matched
subtree of the intermediate language is discarded.
 
     CGSS is implemented in Standard  Pascal  (according  to  BSI  Standard
6192) and generates Standard Pascal or Ada programs.
 
     The price for the CGSS system is US $ 500 for non-commercial  research
purposes and US $ 10.000 otherwise.
 
 
     The tools are distributed on magnetic tape and are  available  in  the
following versions:
 
- portable version
     consisting of  : source files, documentation
     tape format    : file structure according to DIN 66029 resp. ANSI Std.
                      X3.27, 9 track, 1600 BPI, Code: ASCII
 
- portable version for UNIX systems
     consisting of  : sources, documentation, shell procedures
     tape format    : tar, 9 track, 1600 BPI, Code: ASCII
 
- VAX/UNIX version  : for DEC VAX 11 computers under Berkeley UNIX
     consisting of  : sources, documentation, shell procedures, object code
     tape format    : tar, 9 track, 1600 BPI, Code: ASCII
 
- VAX/VMS version   : for DEC VAX 11 computers under VMS
     consisting of  : sources, documentation, shell procedures, object code
     tape format    : BACKUP, 9 track, 1600 BPI, Code: ASCII
 
- Cadmus version    : for PCS Cadmus computers under MUNIX
     consisting of  : sources, documentation, shell procedures, object code
     tape format    : tar, 9 track, 1600 BPI, Code: ASCII; or
     streamer format: cpio, Code: ASCII
 
- SIEMENS version   : for SIEMENS 75xx or 77xx computers under BS 2000
     consisting of  : sources, documentation, shell procedures, object code
     tape format    : TSOSMT, 9 track, 1600 BPI, Code: EBCDIC
 
 
     The above tools are distributed subject to a licence  agreement.   For
further  information  or  to obtain a copy, please mail your postal address
to:
 
     GMD - Forschungsstelle an der Universitaet Karlsruhe
     c/o J. Grosch or E. Klein
     Haid-und-Neu-Str. 7
     D-7500 Karlsruhe 1
     West Germany
 
     Telefon 0721-662226
     Teletex 721170 IHKutb
     Telefax 0721-174263
 
     [seismo!] unido!gmdka!grosch (UUCP)   or
     unido!gmdka!grosch@seismo.css.gov
--
Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.ARPA
Plausible paths are { ihnp4 | decvax | cbosgd | harvard | yale | cca}!ima
Please send responses to the originator of the message -- I cannot forward
mail accidentally sent back to compilers.  Meta-mail to ima!compilers-request