Computational linguistics is an interdisciplinary field between linguistics and computer science that deals with computational modeling of human language. It has both theoretical and applied components. Theoretical CL develops formal models of linguistic knowledge and implements them as computer programs to better understand language faculties. Applied CL focuses on practical applications like natural language interfaces and machine translation to improve human-computer interaction. Computational linguistics combines ambitious goals like full language understanding with realistic current applications.