Programming Tutorials

Excellent Free Tutorials to Learn Prolog

Prolog is a general purpose, declarative, logic programming language, often associated with artificial intelligence, computational linguistics, intelligent database retrieval, and problem solving. It’s widely used in research and education for natural language processing.

Automatic backtracking is one of the most characteristic features of Prolog. It’s a form of searching, fundamental to all artificial intelligence techniques. Prolog also supports multi-directional reasoning; arguments to a procedure can freely be designated inputs and outputs in different ways in different procedure calls. This is a powerful theorem-proving technique. Another key feature of Prolog is that its syntax and semantics are closer to formal logic than say Lisp.

Prolog is generally regarded as a difficult language to get to grips with. But learning the fundamentals of Prolog is definitely worthwhile.

Here’s our recommended tutorials to learn Prolog. If you’re looking for free Prolog programming books, check here.


1. Coding Guidelines for Prolog by Michael A. Covington, Roberto Bagnara, Richard A. O’Keefe, Jan Wielemaker, and Simon Price

Coding Guidelines for Prolog provides immediate guidelines for code layout, naming conventions, documentation, proper use of Prolog features, program development, debugging and testing.

Read the paper


2. A Concise Introduction to Prolog by David Matuszek

Prolog is a logic language, not an algorithmic language, and one therefore has to learn to think about programs in a somewhat different way. The terminology is also somewhat different.

Read the tutorial


3. Introduction to Prolog for Mathematicians by Jocelyn Ireson-Ireson-Paine

Examples include: A circuit simulator, sets implemented as unions of intervals, arbitrary precision rational arithmetic, very simple version of Bundy’s Press, family relationships, example of manual program transformation, demonstration of Prolog inference, symbolic differentiation, and uncertain reasoning.

Read the tutorial


4. Prolog Problems by Werner Hett

The purpose of this problem collection is to give you the opportunity to practice your skills in logic programming. Your goal should be to find the most elegant solution of the given problems. Efficiency is important, but logical clarity is even more crucial. Some of the (easy) problems can be trivially solved using built-in predicates. However, in these cases, you learn more if you try to find your own solution.

Read the problem collection


5. Prolog tutorial by J. R. Fisher

This tutorial is intended to be used to help learn the essential, basic concepts of Prolog. The sample programs have been especially chosen to help promote the use of Prolog programming in an artificial intelligence course.

Read the tutorial


6. A Short Tutorial on Prolog by Tamsin Treasure-Jones

This tutorial introduces some of the central concepts of Prolog under a series of topic headings.

Read the tutorial


All tutorials in this series:

Free Programming Tutorials
JavaGeneral-purpose, concurrent, class-based, object-oriented, high-level language
CGeneral-purpose, procedural, portable, high-level language
PythonGeneral-purpose, structured, powerful language
C++General-purpose, portable, free-form, multi-paradigm language
C#Combines the power and flexibility of C++ with the simplicity of Visual Basic
JavaScriptInterpreted, prototype-based, scripting language
PHPPHP has been at the helm of the web for many years
RubyGeneral purpose, scripting, structured, flexible, fully object-oriented language
AssemblyAs close to writing machine code without writing in pure hexadecimal
SwiftPowerful and intuitive general-purpose programming language
GroovyPowerful, optionally typed and dynamic language
GoCompiled, statically typed programming language
PascalImperative and procedural language designed in the late 1960s
PerlHigh-level, general-purpose, interpreted, scripting, dynamic language
RDe facto standard among statisticians and data analysts
COBOLCommon Business-Oriented Language
ScalaModern, object-functional, multi-paradigm, Java-based language
FortranThe first high-level language, using the first compiler
ScratchVisual programming language designed for 8-16 year-old children
LuaDesigned as an embeddable scripting language
LogoDialect of Lisp that features interactivity, modularity, extensibility
RustIdeal for systems, embedded, and other performance critical code
LispUnique features - excellent to study programming constructs
AdaALGOL-like programming language, extended from Pascal and others
HaskellStandardized, general-purpose, polymorphically, statically typed language
SchemeGeneral-purpose, functional, language descended from Lisp and Algol
PrologGeneral purpose, declarative, logic programming language
ForthImperative stack-based programming language
ClojureDialect of the Lisp programming language
JuliaHigh-level, high-performance language for technical computing
SQLAccess and manipulate data held in a relational database management system
ErlangGeneral-purpose, concurrent, declarative, functional language
VimLPowerful scripting language of the Vim editor
OCamlGeneral-purpose, powerful, high-level language
AwkVersatile language designed for pattern scanning and processing
RacketPlatform for programming language design and implementation
BASICFamily of general-purpose, high-level programming languages
CoffeeScriptA very succinct programming language that transcompiles into JavaScript
LaTeXProfessional document preparation system and document markup language
ElixirRelatively new functional language that runs on the Erlang virtual machine
DartClient-optimized programming language for fast apps
ABAPAdvanced Business Application Programming
F#General purpose, strongly typed, multi-paradigm language. Part of ML
ChapelParallel-programming language in development at Cray Inc.
DylanMulti-paradigm language, supports functional & object-oriented programming
DGeneral-purpose systems programming language with a C-like syntax
SolidityObject-oriented, high-level language for implementing smart contracts
XMLSet of rules for defining semantic tags that describe the structure and meaning
ValaObject-oriented language with a self-hosting compiler that generates C code
ECMAScriptBest known as the language embedded in web browsers
KotlinStatically typed, general-purpose programming language with type inference
TypeScriptStrict syntactical superset of JavaScript, adding optional static typing
MarkdownPlain text formatting syntax designed to be easy-to-read and easy-to-write
PikeInterpreted, general-purpose, high-level, cross-platform, dynamic language
HTMLHyperText Markup Language
FactorDynamic stack-based language
Objective-CGeneral purpose language which is a superset of C
Standard MLOne of the two main dialects of the ML language
AliceEducational language with an integrated development environment
AgdaDependently typed functional language based on intuitionistic type theory
IconHigh-level, general-purpose language
PureScriptSmall strongly, statically typed language with expressive types
TclDynamic language based on concepts of Lisp, C, and Unix shells
EiffelObject-oriented language
Share this article

One comment

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.