Skip to Main Content
Attribute grammars constitute a formal mechanism for specifying translations between languages; from a formal description of the translation, a translator can be automatically constructed. This process is taken one step further; given an attribute grammar specifying the translation from language L1 to language L2, the question of whether the inverse attribute grammar specifying the inverse translation from L2 to L1 can be automatically generated is addressed. It is shown how to solve this problem for a restricted subset of attribute grammars. This inversion process allows compatible two-way translators to be generated from a single description. To show the practical feasibility of attribute grammar inversion, experience in inverting an attribute grammar used as an interface for a formal database accessing language, SQL, is related. The attributed grammar is used to paraphrase SQL database queries in English.