Syntax-directed translation (SDT) is a method of translating a string into a sequence of actions by attaching one such action to each rule of a grammar.Thus, parsing a string of the grammar produces a sequence of rule applications. Each language construct is associated information by attaching attributes to the grammar symbol(s) representing the construct. A syntax-directed definition specifies the values of attributes by associating semantic rules with the grammar productions. For example, an infix-to-postfix translator might have a product and rule where the symbol “
||” is the operator for string concatenation:
| Production | Semantic Rule | 
|---|---|
| <E> ::= <E1> + <T> | Code(<E>) = Code(<E1>) || Code(<T>) || '+' | 
<E1> distinguishes the <E> in the production body from the <E> in the head.
Both <E> and <T> have a string-valued attribute Code.
The semantic rule specifies that the string Code(<E>) is formed by concatenating Code(<E1>), Code(<T>), and the character ‘+’.
