Imperative programming languages perform the instructions in the order you specify. Procedural languages (e.g. C) are imperative languages that allow you to group instructions into named blocks called functions or procedures. Object orientated languages like C++, Java and Python extend procedural languages with additional features.
Prolog works in a completely different way to imperative languages. With prolog, you define facts, e.g.
noun(Tom).. You can also define rules that infer things from other things (i.e. define relationships). These then allow you to perform queries on an input given the facts and rules in the system.
A use case for Prolog in computational linguistics would be in constructing syntax trees from a given sentence. The facts would be the part of speech classification for each word, and the rules would be how the parts of speech group together in syntax tree constructs (e.g. noun phrases).
Prolog (and related languages) are popular for a type of AI approach called an expert system (of which the syntax tree construction above is an example). Expert systems have been applied to different domains, e.g. medical diagnostics, to varying degrees of success.
The reason why languages like Prolog are popular for writing expert systems is that they are specifically constructed for writing expert systems, so you don't have to write a lot of boilerplate or repeated code as you would in another programming language. In computer science, this is an example of a domain-specific language -- kind of like how different fields define their own words and their own terminology for things.