Prolog is a declarative programming language based on predicate calculus. It was created was by Alain Colmerauer in 1970, as an attempt to create a language that enabled the expression of logic instead of a step by step procedure.
Prolog is particularly well-suited to express complex ideas and is the language of choice for many applications in Artificial Intelligence. It is particularly suited for expert systems and natural language parsers and, in general, for any system based on knowledge representation and problem solving.
From the programmer's perspective Prolog is very different from traditional languages. The drudgery of memory management, stack pointers etc. is left to the computational engine and the programmer is free to concentrate on the logical description of the problem. So, rather than conceiving a procedural way of solving the problem itself, the Prolog programmer focuses on representing a knowledge domain, leaving to the Prolog engine the task of finding solutions for any problem arising in that domain.
A lot of the research leading up to modern implementations of Prolog came from spin-off effects caused by the Fifth Generation Computer Systems Project which chose to use a variant of Prolog, named Kernel Language, for their operating system.
Today, the most advanced examples of robotics and AI have inspired several leaders in the scientific community to voice concerns about Artificial Intelligence.
Joseph Weizenbaum, the creator of the famous ELIZA program, was one of the most vocal critic of it: