PROLOG is a logical programming language. The PROLOG programming language is the most extensively used in the logic programming paradigm. PROLOG is a declarative language, which implies that rather than computing how to find a solution, a programme is made up of data based on facts and rules (logical connection). A logical relationship is a description of the relationships that exist for a certain application.
Features of PROLOG:
- PROLOG is a declarative programming language.
- It employs predicate calculus terminology.
- PROLOG is a natural handler of lists and recursions.
- This language has a built-in inference engine as well as automated backtracking.
- PROLOG has built-in parallelism.
- Unification: The main concept is to see if the phrases can be combined to reflect the same structure.
- For problems requiring inference, PROLOG allows for very efficient coding.
PROLOG Data Types:
Between a pair of single quotes, a character is encapsulated.
- Integer: An integer between -32768 and 32767 that is a full number.
- Real: A peculiar character that is either positive or negative, followed by numbers.
- String: A collection of characters encased in a pair of double-quotes. Strings can have up to 255 characters in them.
- Symbol: A combination of letters (A to Z or a to z), numerals (0 to 9) and the underscore(_) character.
- Variables: A variable is a symbol that can have multiple values assigned to it at different stages of the program’s execution.
- Reserved terms: PROLOG features a few reserved words that should not be substituted for user-defined names.
- Arithmetic Operators: The basic arithmetic operators in PROLOG are +, -, *, and /.
- Relational Operators: PROLOG utilises the relational operators,=, =>, >=, >=. A relational operator in PROLOG can be either goal or subgoal. The relational operator (=) resembles an assignment operator in appearance.
Structure of PROLOG:
domains
/*…domain statements…*/
predicates
/*…predicate statements…*/
goal
/*…subgoall, subgoal, etc… */
clauses
/* …clauses (rules and facts)…*/
The three primary components of a PROLOG programme are:
Clauses:
This section contains all of the program’s information and regulations. The same-named facts and rules must be grouped together. A procedure is a set of sentences that define a predicate. The user is requested to write in a goal following a goal during execution. PROLOG begins searching for a solution for the input goal at the top of the clauses section, going through each fact and rule one by one in search of a probable match.
Predicates:
One or more clauses make up a predicate. Clauses belonging to the same predicate must be in order. A predicate can be declared as – in general.
predicate_name (arg1, arg2, arg3,…, argn)
There is no need for parenthesis if there are no arguments. Only the predicate name is required; it starts with a lowercase letter and is followed by a string of letters, numbers, and the underscore(_) character. The length of a predicate name is limited to 250 characters.
Domains:
Even while PROLOG uses the same domains as in-built domains, a user can choose problem-related meaningful names for domains. User-defined domain names are commonly used, but the PROLOG system does not recognise them. As a result, the user provides information about these user-defined domains in the domains section.
The applications of PROLOG are as follows:
- Specification Language
- Robot Planning
- Natural language understanding
- Machine Learning
- Problem Solving
- Intelligent Database retrieval
- Expert System
- Automated Reasoning
Disadvantages:
- In general, LISP offers superior I/O capabilities than PROLOG.
- Graphics are not supported by PROLOG in general. Turbo PROLOG, which was just released, is an exception.
- The sequence in which rules are entered has a significant impact on PROLOG’s efficiency. The order of LISP functions has a negligible impact on the efficiency of the language.
- PROLOG and LISP can be combined. Certain AI applications are better suited to LISP, whereas others are better suited to PROLOG. The best configuration may be a hybrid system that combines and combines the two languages. This combination may be done in two different ways.
File extension:
On systems whose extensions have global significance, such as MS-Windows, tradition calls for .pl, but conflicts with Perl compel the usage of another extension. On such systems,.pro is a popular option. The alternative extension is kept in the HKEY CURRENT USER/Software/SWI/PROLOG/fileExtension or HKEY LOCAL MACHINE/Software/SWI/PROLOG/fileExtension registry keys on MS-Windows. Without explicitly defining the extension, all versions of SWI-PROLOG load files with the extension .pl as well as the registered alternative extension.
Extension .pl, .pro, .P:
- A .PL file includes Perl source code, which is a programming language that is compiled and executed with the help of a Perl interpreter. Variables, actions, functions, and comments are all included in the Perl programme code.
- Adobe Proto, a now-defunct Adobe Touch programme, generates a .PRO file, which is a website or mobile application mockup. It includes one or more UI layouts for a webpage or mobile app, each of which may have interactive features. CSS, WebKit, and jQuery are all supported by .PRO files.
- Picture files made by Pascal are stored in .P files.The extension is used by MATLAB to store binary-runtime files within the programme.
Conclusion:
A logic programming language is PROLOG. It is crucial in the field of artificial intelligence. PROLOG, unlike many other programming languages, is primarily intended as a declarative language. PROLOG expresses logic as a set of relations (called as Facts and Rules). The reasoning being applied is at the heart of PROLOGue. Running a query across these relations is used for formulation or computation.