Smalltalk has been used extensively for simulations, neural networks, machine learning and genetic algorithms. It implements the purest and most elegant form of object-oriented programming using message passing. Prolog[3][4] is a declarative language where programs are expressed in terms of relations, and execution occurs by running queries over these relations.