Computational linguistics studies the nature of human languages and language-learning from a computational perspective. Many of problems in computational linguistics aim to automate decisions and processes that humans accurately undertake every day with apparently very little conscious effort. Examples include word recognition and segmentation, the phonological, morphological, syntactic, semantic, and pragmatic analysis of both speech and written texts, and, at least for multilingual speakers, translation. Computationally, these are difficult problems, each with their own subproblems and subtleties, but there can be little doubt that solving nearly every one of them goes hand-in-hand with understanding natural language systems.
Thus, research in this area occurs at the intersection of linguistics and theoretical computer science. On the linguistics side, we draw from insights gained from theoretical syntax, semantics, morphology, phonology, and phonetics. On the computer science side, we draw from insights from formal language theory, logic, model theory, graph theory, computational learning theory, and grammatical inference.