claim: William Cohen is American.
evidence: An attribute grammar is a formal way to define attributes for the productions of a formal grammar , associating these attributes to values .. attributes. Attribute ( computing ). formal grammar. formal grammar. The evaluation occurs in the nodes of the abstract syntax tree , when the language is processed by some parser or compiler .. abstract syntax tree. abstract syntax tree. parser. parser. compiler. compiler. The attributes are divided into two groups  : synthesized attributes and inherited attributes .. attributes. Attribute ( computing ). The synthesized attributes are the result of the attribute evaluation rules , and may also use the values of the inherited attributes .. attributes. Attribute ( computing ). The inherited attributes are passed down from parent nodes .. attributes. Attribute ( computing ). In some approaches , synthesized attributes are used to pass semantic information up the parse tree , while inherited attributes help pass semantic information down and across it .. attributes. Attribute ( computing ). For instance , when constructing a language translation tool , such as a compiler , it may be used to assign semantic values to syntax constructions .. compiler. compiler. Also , it is possible to validate semantic checks associated with a grammar , representing the rules of a language not explicitly imparted by the syntax definition .. Attribute grammars can also be used to translate the syntax tree directly into code for some specific machine , or into some intermediate language .. intermediate language. intermediate language. One strength of attribute grammars is that they can transport information from anywhere in the abstract syntax tree to anywhere else , in a controlled and formal way .. abstract syntax tree. abstract syntax tree