Programs can be represented in various ways in ProgramTransformationTools. * AbstractSyntaxTree * DirectedAcyclicGraph * Graph * Objects Particularly important/problematic is the treatment of variables and other identifiers with restricted scope. * SymbolTable * VariableRenaming * HigherOrderAbstractSyntax * FreshML In addition to the internal representation used by a tool, it is important that tools can export such a representation such that it can be manipulated by other tools. ExchangeFormats facilite the exchange of structured representations of programs between tools.