Modern Prolog

"A programming language is a toolbox filled with problem solving tools."(1)   There are lots of different programming languages and approaches to creating a programming language.

Bet you did not know that the first computer programmer was a woman named Ada Lovelace (a.k.a. the Countess of Lovelace). Ada even has a programming language named after her, Ada.

This graphic shows a summarized evolution of programming languages. Here is the more detailed version.  Which is the "best" programming language? Well, that depends on what you want to achieve and can be a matter of preference in many cases. "Best" depends on the problem you need to solve.

Somewhat unique among programming languages is PROLOG.

PROLOG (PROgramming LOGic) is a declarative logic programming language which was developed 50 years ago.  While many if not most other familiar programming languages are imperative; unlike those other programming languages, PROLOG is a declarative programming language. 


If you don't understand the difference between imperative and declarative programming, watch this five minute video.

In PROLOG, logic is expressed as facts and rules. The language has been used for theorem proving, expert systems, term rewriting, type systems, and automated planning, as well as its original intended field of use, natural language processing.

Fundamentally, what a computer program does is process logic.  At the core of this processing is the logic gate. Logic gates perform logical operations.  The efficiency and effectiveness with which these logic gates can be created and processed is at the core of what computer software does.

This blog post of mine, Business Case for Modern Prolog, points out that PROLOG has a long, proven track record, there is an ISO standard version of PROLOG, there are 20+ different implementations of PROLOG, and there are cloud-based versions of PROLOG such as SWI-PROLOG.

Things such as LogTalk seem to make PROLOG more approachable to software engineers.

The Seattle Method was effectively implemented using SWI PROLOG by Auditchain in the Pacioli Logic and Rules Engine. That software was one of five finalists in the PROLOG 50 competition. (This provides information about the submission.)

The designer of Prolog, Bob Kowalski, also created something called Logical English. Per the creators of Logical English, the ultimate goal of Logical English is to serve as a general-purpose computer language, which can be understood by a reader without any training in computing, logic or mathematics. It is inspired in part by the language of law, which can be viewed as a programming language that is executed by humans rather than by computers.

If you cannot wrap your head around all this, I would encourage you to read the paper Computational Professional Services.

Another programming language that seems to be important here is LISP.  LISP is a functional programming language.

Resources:

Comments

Popular posts from this blog

Relational Knowledge Graph System (RKGS)

Getting Started with Auditchain Luca

Evaluating the Quality of XBRL-based Financial Reports