Christopher B. Browne's Home Page
cbbrowne@acm.org

10. Prolog

Prolog is the classic language of "database inference," where you collect a set of facts into a "database," add rules indicating how they interact, and what implications may be taken from the facts, and then construct queries about things you might want to know.

Obvious applications would include describing a family tree:

Unfortunately, the "declarative" nature of the syntax of Prolog makes it a real pain to write "procedural" code in the language. That has proven a daunting challenge discouraging wider spread use of Prolog. The PyProlog interface provides an interesting option where one might write "interface" code in a language with more conventional semantics, like Python , but process complex logic using Prolog semantics.

That being said, the rule/inference orientation of Prolog makes it perfect for applications such as inferring results about taxation. I have implemented a Canadian Income Tax Calculator in Prolog.

10.1. Erlang

Google
Contact me at cbbrowne@acm.org