re: Lex and Yacc like tools

harvard!seismo!unido!gmdka!grosch (Josef Grosch)

          From comp.compilers

Related articles
re: Lex and Yacc like tools tarvydas@csri.toronto.edu (Paul Tarvydas) (1987-03-22)
re: Lex and Yacc like tools harvard!seismo!unido!gmdka!grosch (1987-04-15)
| List of all articles for this month |

From: harvard!seismo!unido!gmdka!grosch (Josef Grosch)

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
--


Post a followup to this message

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