1. Intermediate codes are generated during syntax-directed translations to represent the semantics of source code statements. Common forms include polish notation, three-address codes, and quadruples.
2. Three-address codes represent each operation using a pseudo-machine instruction with three operands, allowing intermediate expressions to be easily evaluated. Quadruples use four operands for improved readability.
3. Translating expressions involves generating code that assigns values to temporary variables to represent subexpressions and the full expression value. Mixed-mode and boolean expressions require additional logic to handle different data types and control flow.