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