Syntax directed translation allows semantic information to be associated with a formal language by attaching attributes to grammar symbols and defining semantic rules. There are several types of attributes including synthesized and inherited. Syntax directed definitions specify attribute values using semantic rules associated with grammar productions. Evaluation of attributes requires determining an order such as a topological sort of a dependency graph. Syntax directed translation schemes embed program fragments called semantic actions within grammar productions. Actions can be placed inside or at the ends of productions. Various parsing strategies like bottom-up can be used to execute the actions at appropriate times during parsing.