λProlog is a logic programming language based on an intuitionistic fragment of Church's Simple Theory of Types, featuring polymorphic typing, modular programming, abstract datatypes, support for lambda-tree syntax, and higher-order programming.
λProlog(LambdaProlog)
λProlog is a logic programming language based on an intuitionistic fragment of Church's Simple Theory of Types. Such a strong logical foundations provides λProlog with logically supported notions of
modular programming,
abstract datatypes
higher-order programming, and
the lambda-tree syntax approach to the treatment of bound variables in syntax.
Implementations of λProlog make use of simply typed λ-terms as well as (of subsets) of higher-order unification.
Its simplicity makes it especially appropriate for teaching, where it can help provide the students with a high-level and direct language for implementing, for example, inference based systems, grammars, automata, etc.
For more information and resources, visit the official λProlog site.
Coding in λProlog
Many languages implement the concepts behind λProlog. Teyjus is one of the most maintained and advanced such languages. Visit the official Teyjus site for more information, including download instructions. There are a couple of emacs modes for developing using Teyjus available through a Google search.
Learning λProlog
To delve into the theoretical foundations of λProlog, the main reference is the Programming with Higher-Order Logic book. For light and introductory tutorials, one can find various resources ranging in difficulty, both in written and video form, on the official λProlog site.