CLP and Concurrent Constraint Programming Languages extend logic programming languages like Prolog in two ways:
These languages might be richer than predicate logic, with a number of higher-order facilities. Higher-orderness has rich applications in NLP; for instance, lambda-calculus is already widely used in natural language semantics.
Contrary to earlier CLP languages, new formalisms exist which provide efficient implementations of feature constraint normalization, directly within the language (e.g. Oz and LIFE).
Slogans for the richer control structures:
Scalable systems can be constructed by providing high-performance compilation and program transformation techniques like partial evaluation and abstract interpretation. This was early demonstrated by Peter Van Roy in the Aquarius system, and he is now bringing that work to the LIFE system.
Integration of Object Orientation (OO). This provides both state encapsulation, an important software engineering tool, and inheritance, a data structuring tool that is already important in NLP.
Lazy sort unfolding is another kind of concurrent programming based on a different evalution model that makes use of memoization techniques to avoid replicated computations (LIFE, TDL, TFS).