Learning Programs in Different Paradigms using Genetic Programming

Genetic Programming (GP) is a method of automatically inducing programs by representing them as parse trees. In theory, programs in any computer languages can be translated to parse trees. Hence, GP should be able to handle them as well. In practice, the syntax of Lisp is so simple and uniform that the translation process can be achieved easily, programs evolved by GP are usually expressed in Lisp. This paper presents a flexible framework that programs in various programming languages can be acquired. This framework is based on a formalism of logic grammars. To implement the framework, a system called LOGENPRO (The LOgic grammar based GENetic PROgramming system) has been developed. An experiment that employs LOGENPRO to induce a S-expression for calculating dot product has been performed. This experiment illustrates that LOGENPRO, when used with knowledge of data types, accelerates the learning of programs. Other experiments have been done to illustrate the ability of LOGENPRO in inducing programs in difference programming languages including Prolog and C. These experiments prove that LOGENPRO is very flexible.