We are independent & ad-supported. We may earn a commission for purchases made through our links.
Advertiser Disclosure
Our website is an independent, advertising-supported platform. We provide our content free of charge to our readers, and to keep it that way, we rely on revenue generated through advertisements and affiliate partnerships. This means that when you click on certain links on our site and make a purchase, we may earn a commission. Learn more.
How We Make Money
We sustain our operations through affiliate commissions and advertising. If you click on an affiliate link and make a purchase, we may receive a commission from the merchant at no additional cost to you. We also display advertisements on our website, which help generate revenue to support our work and keep our content free for readers. Our editorial team operates independently of our advertising and affiliate partnerships to ensure that our content remains unbiased and focused on providing you with the best information and recommendations based on thorough research and honest evaluations. To remain transparent, we’ve provided a list of our current affiliate partners here.
Software

Our Promise to you

Founded in 2002, our company has been a trusted resource for readers seeking informative and engaging content. Our dedication to quality remains unwavering—and will never change. We follow a strict editorial policy, ensuring that our content is authored by highly qualified professionals and edited by subject matter experts. This guarantees that everything we publish is objective, accurate, and trustworthy.

Over the years, we've refined our approach to cover a wide range of topics, providing readers with reliable and practical advice to enhance their knowledge and skills. That's why millions of readers turn to us each year. Join us in celebrating the joy of learning, guided by standards you can trust.

What is Prolog Language?

By Archana Khambekar
Updated: May 16, 2024

Prolog is a computer programming language that is based on logic. Most computer languages are based on the steps needed to solve a problem. The Prolog language, on the other hand, is a "declarative" language which indicates the logical relationships between entities. The way to solve the problem is left to the computer. The name Prolog comes from the French PROgrammation en LOGique, that is, PROgramming LOGic.

The following is a simple Prolog program:

ancestor(F, C) :- father(F, C)
ancestor(P, Q) :- father(P, R), ancestor(R, Q)
father(john, jim).
father(jim, jerry).
father(jerry, jason).
father(jerry, jeff).
father(jason, joshua).

The above program indicates truisms. If F is father of C, then F is an ancestor of C. If P is the father of some person R who is an ancestor of Q, then P is an ancestor of Q. A number of true facts are then given, such as john being the father of jim. If then a problem question is posed as to whether john is an ancestor of jeff, we get the response "Yes" as below:

?- ancestor(john, jeff).
Yes

If the ancestors of joshua are of interest, then the program displays all the ancestors as follows:

?- ancestor(A, joshua)
A = jason
A = jerry
A = jim
A = john

Note that in both the above instances, the program did not tell how to do the evaluation. For example, it did not indicate whether to start at the older person and work its way to the younger person or vice versa. Also interchanging the parts as below:

ancestor(P, Q) :- ancestor(R, Q), father(P, R)

It would make no difference to the program, as both these parts on the right side need to be true in order for the left side to be true.

The Prolog language thus focuses on the relationships, and not on how to solve the problem. During program execution, Prolog builds up a number of true statements, creating a knowledgebase. In the example above, the knowledgebase, in no particular order, would have ancestor(john, jim), ancestor(jim, jerry), ancestor(john, jerry), ancestor(jim, jason), ancestor(john, jason), and so on. This knowledgebase can continue building up as the program executes, and can be searched efficiently to get solutions. The execution can use parallel processing, simultaneous execution by multiple computers.

The Prolog language is used in a number of areas. It started off in systems geared for natural languages such as English; natural language is one of the areas of Artificial Intelligence. The Prolog language is also used in symbolic mathematics, including algebra. It is used in proving theorems, in expert systems, and in control systems, among many other applications.

EasyTechJunkie is dedicated to providing accurate and trustworthy information. We carefully select reputable sources and employ a rigorous fact-checking process to maintain the highest standards. To learn more about our commitment to accuracy, read our editorial process.
Discussion Comments
Share
https://www.easytechjunkie.com/what-is-prolog-language.htm
EasyTechJunkie, in your inbox

Our latest articles, guides, and more, delivered daily.

EasyTechJunkie, in your inbox

Our latest articles, guides, and more, delivered daily.