We describe a Genetic Algorithm that can evolve complete programs. Using a variable length linear genome to govern the mapping of a Backus Naur Form grammar definition to a program, expressions and programs of arbitrary complexity may be evolved. Our system, Grammatical Evolution, has been applied to problems such as a Symbolic Regression problem, and finding Trigonometric Identities. In this paper we describe how we applied GE to a Symbolic Integration problem, that being finding a function which is an integral of Cos(X)+2X+1. We also show how a Steady State selection mechanism was found to improve the performance of Grammatical Evolution.