An Introduction to Constraint Programming
The two most common programming paradigms are the imperative (including OO) and functional styles. An alternative style, supported originally through languages like Prolog, is logic or constraint programming. In that style, attempts are made to find automatic solutions to problems expressed as logic expressions. While Prolog hasn't been in mainstream use for many years, some of the novel solutions offered by that style are now possible on the JVM using constraint programming libraries. This talk looks at what kinds of problems lend themselves to constraint programming solutions and gives numerous Java and Groovy examples (though you could easily convert the examples to most JVM languages).