ericv@phoibos.cs.kun.nl (Eric Vos) (12/14/90)
Archive site: phoibos.cs.kun.nl (131.174.81.1) Archive directory: pub/GLASS/glammar.tar.Z (Call for beta test sites) GLAMMAR ---- text to text translator generator. Now available for anonymous ftp on "phoibos.cs.kun.nl", at the University of Nijmegen (Netherlands). Glammar is a powerful and efficient text to text translator generator for unix based systems. Glammar descriptions are translated to C. Applications range from front ends for compilers to the description of natural languages. Here is the introduction from the manual (+- 100 pages) of the distribution (included in "dvi" format). ++++++++++++++++++ 1.Glammar: Front end compiler compiler A number of tools have been developed specifically to help construct transla- tors. These tools range from scanner and parser generators to complex systems , variously called compiler-generators, translator-writing systems or compiler compilers. They all require a specification of the source language and target machine to produce a compiler for the source language that produces code for the target machine. In Glammar, the description of both, the source language and the associated target machine code, are specified in one same descriptive language. The primary advantage of glammar as a compiler compiler is its struct- ural simplicity. There is no need for the user to make double, losely connected, specifications, nor the need to program in the traditional imperative style. Glammar is perhaps better being defined as syntax-directed text to text \ translation tool or as a pattern transformation language. Usage is not limited to the development of (front ends for) compilers. 2.EAG, a language description language EAG is an acronym of Extended Affix Grammars. These grammars are an extension of context free grammars. We assume the reader has at least some basic knowledge of context-free grammars. The extensions are: (1)Affix expressions labeling nonterminals. This allows nonterminals to yield results. The results are composed of results of the members of a nontermi- nal together with constants and metanonterminals. Second affixes can be used for affix directed parsing which make it possible to describe context sensitive languages. (2)A metalevel. The metalevel acts as an abstraction mechanism and concerning the Glammar lattice feature it can be used as a very efficient unification mechanism. 3. Should you use Glammar Glammar is most generally defined as a pattern transformation language. Patterns and their transformations are specified together in one uniform descriptive language. A grammar defining a pattern need not to be regular, LL or LR. It may even be ambiguous. For simple grammars a parser created by glammar is about as efficient as a YACC generated parser. More complex ones usually have more C code in their YACC implementation and therefore gain some speed in comparison with Glammar . The best comparison is to PROLOG's Definite Claus Grammars. Some differ- ences are that Glammar - uses flow symbols - has an automatic memorizing option (absolute necessary for linguistic grammars) - offers finite lattices as a metagrammar (with some well defined operators) for very fast unification and finally - treats backtracking quite different. - directly translates to C. Glammar is used extensively by people designing and testing grammars for English, American and Spanish. Glammar is also used in several Esprit projects at the KU Nijmegen. It is used to implement a parser for Comma (COMputable MAthematics) and has been used to implement Glass (General LAnguage for System Semantics). ++++++++++++++++++ Problems, bugs or comments can be reported to ericv@cs.kun.nl Enjoy, Eric Voss.