This thesis mainly deals with genetic programming. In this work, we are interested in improving the overall performance of genetic programming (GP) when dealing with rich grammar when the terminal set is very large. We introduce the problem of attributes selection and in our work we introduce a scheme based on the weight (based on the frequency) to refine the attribute selection. In the second part of this work, we try to improve the evolution engine with the help of the differential evolution (DE) algorithm. This new engine is applied to linear genetic programming. We then present some experiments and make some comparisons on a set of classical benchmarks.