The document discusses syntax-directed translation using attribute grammars. Attribute grammars assign semantic values or attributes to the symbols in a context-free grammar. A depth-first traversal of the parse tree executes semantic rules that calculate the values of attributes. There are two types of attributes: synthesized attributes which are computed bottom-up and inherited attributes which are passed top-down. L-attributed grammars allow efficient evaluation by passing inherited attributes left-to-right during a depth-first traversal.