Representing a program as a tree