Natural language processing is the process of recognition of human (natural) language, its comprehension, and generation. As the ability of the computer to understand a spoken language and generate replies, NLP is a part of artificial intelligence. The development of the technology is not as fast as expected mainly because spoken human language has nothing in common with the perfectly-structured language of programming. Natural language processing is used in enterprise search so far. A machine can comprehend a spoken question, convert into a data-set and give back an answer.
Computational linguistics deals with the application of computers to process a natural language. Most theories of computational linguistics come from computer science. However, computational linguistics does not deal with artificial intelligence as closely as computer science does. Therefore, CL develops computational methods to answer scientific questions of linguistics. Linguists work to develop computational models to linguistic phenomena; it shall not be confused with developing language processing software.
Some researchers consider that computational linguistics is an all-encompassing field that includes natural language processing among other features. However, some others point out that natural language processing is more a part of a computer science, just like artificial intelligence is. In fact, computational linguistics is linked to computer science just like biology, sociology, or any other computational discipline. Therefore, it would be incorrect to separate CL from NLP. Natural language processing has a stronger bond with computer engineering while computational linguistics deals primarily with linguistics. As for the rest, these disciplines are interlinked.