A Tree used to represent the structure of a program. It establishes hierarchy in how the code should be interpreted. Start at the root node, and then evaluate each child before the next computation.