Prolog: three portraits in 50 years

In 2024, the logical programming language Prolog turned fifty years old! As a tribute, I would like to tell in a small historical essay about the scientific context of the seventies of the last century, in which both the theory of logical programming and its implementation - the Prolog language - originated. You will not find a more detailed and complete presentation not only on the pages of "tekkix", but also in the Russian-speaking segment of the Internet.

Let's go back to the historical past and look at the events of the period from 1970 to 1976 through the eyes of the creators of the logical programming language Prolog: Alain Colmerauer, Robert Kowalski, and David Warren.

Alain

Alain Colmerauer (Alain Colmerauer) graduated from the Grenoble Institute of Technology. There, in Grenoble (Canada) in 1967, he defended his doctoral dissertation on the topic of syntactic analysis of texts in natural language. It was Alain's interest in syntactic analysis that eventually led to the development of the method of logical programming and the implementation of this method—the Prolog programming language.

University of Montreal

From 1967 to 1970, Alain Colmerauer worked as an assistant professor of computer science at the University of Montreal. He led the TAUM-METEO (Traduction Automatique de l'Université de Montréal) project, designed for the automatic translation of weather forecasts from English to French (recall that Canada is an English-speaking and Francophone country). To structure the data, Alain created a method of directed graph transformations according to given grammar rules, as well as the formal language Q-Systems. Alain wrote the software implementation of the Q-Systems formalisms in the Algol programming language. Q-systems were put into operation by October 1969.

The Q-systems application developed rapidly. Graduates of the University of Montreal Michel van Caneghem and Franqois Stellin rewrote Q-systems in the Fortran programming language. The fact is that it was the Fortran language that was present at that time on almost every large computing complex. In turn, Gilles Steward adapted the Fortran version for the Control Data Corporation CDC 6400 supercomputer and supplemented it with a translation phase module. Brian Harris supplemented the Q-systems formalisms with morphological analysis of the English language. Richard Kittredge wrote a substantive grammar for the analysis of the English language, and Jules Danserau — a grammar for the synthesis of the French language. Michel van Caneghem developed a complete morphology of the French language.

In 1970, Jean Trudel — a graduate student of Alan Colmeroe, — was writing a dissertation on the topic of automatic theorem proving. While studying the literature, he came across a publication by Alan Robinson on the principle of resolution in theorem proving. The article was difficult for Jean to understand, and he turned to Alan for clarification. Alan explained to Jean the theoretical basis of the article. But Alan himself was interested in the practical application of this theory in his research. Alan learned that Martin Davis had developed a complete theorem proving toolkit with unification, written in a modern programming style: all calculations were reduced to pointer modification. Alan agreed with Martin that he would give a lecture course to Jean. Martin Davis readily agreed, and Jean Trudel went to New York to gain new practical knowledge for Alan's research.

University of Aix-Marseille

In 1970, Aix‑Marseille University formed a new computer science faculty in Luminy, a suburb of Marseille, and was recruiting young ambitious staff. Among the first computer science teachers were Robert Pasero and Philippe Roussel. Both were 25 years old. Both graduated from Aix‑Marseille University in 1970.

In order to improve the qualifications of the new computer science teachers, the management of Aix‑Marseille University asked their colleagues from the University of Montreal to arrange an internship for them. They naturally agreed and sent an invitation. In July 1970, Robert Pasero and Philippe Roussel arrived in Montreal. They were introduced to Alain Colmerauer and asked him to introduce his colleagues to his research. By the way, Alain was not much older than them, he was 29 years old. During the two-month internship, Alain introduced them to natural language parsing methods. The young teachers worked on the Q‑System application with a French phrase generator. To gain experience, they wrote several parsers in the Algol 60 programming language.

By the fall of 1970, Alain Colmerauer faced a dilemma: to work at the computer science faculty of Stanford University or accept the invitation of Aix‑Marseille University. Alain decided to take the position of dean of the new computer science faculty at Aix‑Marseille University. A very typical decision for his lifestyle: to seek new directions, start from scratch, and see things through to the end.

At the beginning of 1971, Alan Colmeroe moved from Montreal to Marseille. He took the position of dean (maitre de conference) of the new computer science faculty at Aix-Marseille University. Graduate student Jean Trudel followed Alan, not wanting to change his dissertation supervisor. Moreover, when leaving, Jean Trudel secured a small grant from Hydro Quebec. The project involved the deductive analysis of texts written in French. To work on the project, Alan created a research group. It included already familiar to Alan teachers Robert Passero and Philippe Roussel. The work on the project was distributed as follows. Jean Trudel and Philippe Roussel dealt with the deductive part - automating reasoning when answering questions. And Robert Passero and Alan Colmeroe - with the processing of natural language phrases.

By French standards, the University of Marseille provided excellent conditions for the computer science faculty. A computing complex IBM System 360-44 was installed in the computing center. It was breathtaking: 900 KB of internal memory! With a small drawback - the operating system lacked support for virtual machines - they managed on their own. Jean Trudel developed a console for interactive communication between the operator and the program. Every night Jean reveled in the opportunity to use the full amount of RAM to run "huge" programs, almost 1 MB in size.

Jean Trudel's skills improved not by days, but by hours. In early May, he wrote a theorem-proving program in Algol-W. The logical interface for formulating French phrases using Q-System formalisms contained 50 input rules and 17 output rules. One of the rules was a proof module.

Jean Trudel continued to search for more productive methods of proving theorems. He became interested in the SLD resolution method (SLD resolution). Jean Trudel asked Alan to arrange a meeting with the author of the method, Robert Kowalski. A couple of weeks later, in June, Robert Kowalski came to Marseille at Alan's invitation. The meeting turned out to be unforgettable. To begin with, a conversation was organized with experts in automated theorem proving, who were able to discuss with Robert the principles of resolutions, options, and directions for improvement. During the discussion, Robert himself became interested in how his theoretical method could be applied in the practice of natural language processing.

The first acquaintance of Alan Colmeroe with Robert Kowalski was followed by a whole series of meetings, which resulted in a strong friendship not only between the researchers but also between their families.

The second time Alan and Robert met was in September 1971 at a conference. Both first attended a lecture by Terry Winograd on natural language phrase processing, and then a report by Carl Hewitt (Carl Hewitt) where he presented the Planner programming language. The reports of Terry Winograd and Carl Hewitt lacked the formalism of unification and sharply criticized the logical approach.

The application that created the language

The year 1972 turned out to be financially generous — Alan Colmeroe's research group was awarded three grants. In February 1972, a grant of 122 thousand French francs was provided by the Institute for Research in Information and Automation (Institut de Recherche d'Infomatique et d'Futomatique), associated with the Ministry of Industry of France. This grant allowed the group to acquire the CP-CMS operating system (Control Program/Cambridge Monitor System) with a virtual machine architecture, as well as a teletype terminal for the IBM System 360-67 computer, capable of transmitting data between Marseille and Grenoble at a crazy speed of 300 bits per second. For three years, Alan Colmeroe's team used this powerful computer complex. The next grant attracted graduate student Henry Kanoui, who was researching the morphology of the French language. The last grant was received by Robert Kowalski from the NATO headquarters, which sought to support scientific exchange between Edinburgh and Marseille.

Robert Kowalski spent April and May 1972 in Marseille. Over the past year, the research team had gained significant knowledge about computer methods of theorem proving — how to axiomatize problems, how to concatenate and modify lists. The stumbling block remained the search for formalisms to represent natural language phrases. At that time, they did not yet know about the Horn clause paradigm (Horn clauses). They had to use the Q-System language developed by Alan back in Montreal.

Alan, after Robert's departure, eventually found a way to develop a parser. He linked the binary predicate N(x,y) with each non-terminal symbol of the grammar N, meaning that x and y serve as terminal strings for which there exists a string u, defined by x=uy and derived from N. Representing x and y as lists, each grammar rule was encoded by a statement having exactly the same number of literals as the occurrences of non-terminal symbols. Thus, it was possible to avoid list concatenation (currently, this is the method of difference lists). For computations, Alan introduced additional parameters into each non-terminal. Similar to the Q-System parser, Alan's new parser not only checked the correctness of the statement (syntax) but also extracted the value of the formal part (semantics).

Philippe Roussel completed his dissertation. The main topic of which was the method of SLD-resolution for operating with formal equalities in automatic theorem proving. Formal equality, of course, is less expressive than mathematical equality, but it is easier to automate. In SLD-resolution, the stack-based mode of operation turned out to be similar to the control of procedure calls in imperative programming languages and was well-suited for handling non-determinism by backtracking rather than by copying and saving resolving elements.

Disputes about the formalisms of statement representation continued until the end of summer. Eventually, Alan's research group made a drastic decision — to unify only the head of the statement, even at the cost of completeness. Unknowingly, they reinvented a method similar to Horn clauses. A few years later, Robert Kowalski and Maarten van Emden (Maarten Herman van Emden) perfected this idea by defining the semantics of fixed-point programming using Horn disjuncts.

The decision to unify allowed to speed up the writing of the software part of the application for natural language processing. The programming was done in Fortran, using linear resolution (output) and disjuncts with fact descriptions. To execute the program, Alan proposed a procedural interpretation that transforms the proof process into a traditional step-by-step procedure call.

In the second version of the application, the developers focused not on the deductive part of the analysis of the French language, but on the programming part. In the fall of 1972, Philippe rewrote the Fortran code in the programming language Algol‑W, proposed by Niklaus Wirth, for the IBM 360–67 computing complex under the CP‑CMS operating system. Alan Colmerauer and Robert Pasero created the human-machine interface of the application. The interface contained 610 clauses (statements). Of these, Alan wrote 334 analytical rules, Robert Pasero wrote 162 deductive rules, and Henri Canoui wrote 104 rules of French morphology.

Despite the appearance of the second version of the application, the first version continued to operate. Robert Pasero completed all experiments with French semantics with its help and included the results in his dissertation.

It remained to come up with a name for the application. One evening at home, Philippe Roussel told his wife about the completed software application and the complete impasse with the name.

— Give me some key words, — Philippe's wife asked.

— Uh... text, syntax, logic, calculations, program..., — Philippe began to list.

— What's there to think about?! ProLog (PROgrammation en LOGique), — his wife replied almost without thinking.

So in 1972, the application, intended for interactive communication between humans and computers in French, got the name Prolog. Yes, you read that right — "Prolog application"! In 1972, there was neither a methodology for logic programming nor the Prolog language. All this will appear much later.

In April 1973, Alan Colmeroe's team received official status at the National Center for Scientific Research of France (Centre National de la Recherche Scientifique, CNRS). They were registered as an associated research group of researchers in human-machine dialogue in natural language and were allocated funding of 39,000 French francs per year.

Alan and Robert

Robert Kowalski (Robert Anthony Kowalski), a contemporary of Alan Colmeroe, both born in 1941, entered the graduate school of the University of Edinburgh in 1967 in the Faculty of Mathematics. The faculty was headed at that time by Bernard Meltzer (Bernard Meltzer). Robert chose automated theorem proving as his dissertation topic. He had previously studied mathematical logic in graduate school at Stanford University, but had shown no interest in computer science research.

In 1968, quite by chance, Robert Kowalski met Alan Robinson (John Alan Robinson), the author of the 1965 unification algorithm and resolution principle for theorem proving (the article "Nondeterministic Algorithms"). He happened to visit Bernard Meltzer's department on a day off. They were introduced there. After talking with Alan Robinson, Robert Kowalski became interested in the scientific direction of artificial intelligence.

At that time, spontaneous seminars on the problem of artificial intelligence arose in the UK and the USA. They involved a wide range of researchers on completely different, and seemingly completely unrelated topics. The most notable was the 4th seminar, held in 1969. Alan Robinson, Dag Prawitz (Dag Prawitz), Larry Wos (Larry Wos) spoke at it. Co-authors John McCarthy and Pat Hayes (Pat Hayes) presented a famous report on situational analysis. Cordell Green (Cordell Green) — a graduate student of John McCarthy, — talked about his work on using the resolution method to get answers to questions. Foster (J.M. Foster) and Elcock (E.W. Elcock) presented the Absys assertive programming language (Aberdeen System), developed at Aberdeen University. Pat Hayes (Pat Hayes) and Robert Kowalski talked about the use of semantic trees as a method for finding effective rules for automatic theorem proving. Later, Pat Hayes continued to develop the topic of semantic trees and defended a dissertation on this topic.

Great interest of artificial intelligence researchers in publications on the automation of theorem proving caused strong opposition from the scientific community of the Massachusetts Institute of Technology, who promoted the idea of procedural rather than declarative knowledge representation. The opposition was led by Seymour Papert — the developer of the Logo programming language, and Marvin Minsky (Marvin Minsky) — the director of the Artificial Intelligence Laboratory at the Massachusetts Institute of Technology. Carl Hewitt (Carl Hewitt) — a graduate student of Marvin Minsky, developed the Planner programming language for procedural knowledge representation.

The Planner programming language gained great influence thanks to Terry Winograd (Terry Winograd) — a graduate student at the Massachusetts Institute of Technology, who created the SHRDLU natural language understanding program and implemented the combination of the SHRDLU program with the Planner, Lisp, and Programmer languages. After the appearance of the Programmer parsing system, which interpreted grammars written in terms of programs, research on resolution-based theorem proving sharply declined worldwide.

The activity of Massachusetts Institute of Technology employees Marvin Minsky, Carl Hewitt, and Terry Winograd had a strong influence on Pat Hayes. Pat, after visiting John McCarthy at Stanford, returned very disappointed and refused to continue research with Robert Kowalski. Pat wanted to write a large article criticizing theorem proving methods. But after long arguments with Robert, they agreed not to publish the results of their joint research. Pat Hayes limited himself to co-authoring an article with Bruce Anderson titled "Madness of Logicians," aimed against the theorem proving procedure paradigm.

In 1970, Robert Kowalski defended his doctoral dissertation. Despite the skepticism of those around him, he continued research in the field of theorem proving methods. In 1971, together with Donald Kuehner, they published an article on the applicability of SLD resolutions (SLD resolution) in heuristic methods. Robert Kowalski remained convinced that the goal-oriented SLD approach could provide behavior similar to procedural approaches. Robert struggled to find a way to compete with procedural approaches to syntactic analysis and natural language understanding. As a result, he began exploring the possibility of representing grammars in logical form and using SLD resolutions for parsing.

In the summer of 1971, Robert Kowalski met Alan Colmerauer. Alan was aware of Cordell Green's publications on the resolution method for answering questions, as well as Robert Kowalski's articles with Donald Kuehner on SLD resolution. After personally interacting with Robert, Alan decided to study the application of these methods as the basis for the logical component of an automated question-answering system that his group was working on. At the end of the summer, Alan Colmerauer sent an invitation to Robert Kowalski in Edinburgh, inviting him to stay with him in Marseille. Robert gladly accepted the invitation and drove to Marseille in his small Austin Mini. The wives of Robert and Alan quickly found a common language. While they were socializing, Robert and Alan exchanged ideas about theorem proving and syntactic analysis of formal languages. Robert Kowalski believed that as a researcher he knew a lot about the theorem proving method. However, during his interaction with Alan Colmerauer, Robert was surprised to find that Alan knew more not only about the method but also about its applicability to the syntactic analysis of formal languages.

During their active exchange of ideas, Robert and Alan discovered amazing parallels between the grammars of theorem proving and syntactic analysis. Both methods used: declarative knowledge representation, as well as forward or backward reasoning. They were even more surprised to find that the formal grammar presented in the syntax of formal logic behaves like a bottom-up parser, while the SLD resolution method behaves like a top-down parser. This discovery, made in the summer of 1971, was the first step towards the creation of the Prolog logical programming language.

In 1972, Robert Kowalski presented his findings at the "Mathematical Foundations of Computer Science" conference. The meeting between Robert and Alan gave new impetus to the research. Robert Kowalski, who had returned to Edinburgh, worked on representations of grammars with explicit axioms of associativity. He was inspired by the mathematical idea of creating his own algebra. Alan, on the other hand, realized the futility of using associativity to justify concatenations. Instead, he tried to formalize the graphical representation of strings, similar to Q-Systems — a method of directed graph transformation according to given grammar rules.

The following summer of 1972, Alan invited Robert to come to Marseille with his family for 2 months. He organized a kindergarten for Robert's daughters and rented an apartment for him in the village of Cassis, located near the university campus in Luminy. All the time free from teaching activities, Alan spent with Robert, discussing the idea of using logic as a programming language for computers.

In the fall of 1972, Robert Kowalski returned to Edinburgh after his two-month stay in Marseille. He enthusiastically told his university colleagues about logical programming. Some were enthusiastic, others, such as Pat Hayes, were very dissatisfied. He jealously remarked that Robert Kowalski took credit for the idea that computation is controlled deduction. Pat generally disliked the approach of the Prolog language — achieving a goal by choosing an appropriate logical representation of the problem. Instead, he advocated the opposite approach, which consisted of choosing a fixed logical specification and achieving the desired goal by changing the control commands during theorem proving.

Donald Michie (Donald Michie) — director of the Department of Machine Intelligence at the University of Edinburgh, — and Bernard Meltzer — dean of the Faculty of Mathematics at the University of Edinburgh, — were among those who enthusiastically embraced the ideas of logic programming. Donald invited graduate student David Warren (David H. D. Warren) and research fellow Maarten van Emden (Maarten van Emden) to work with Robert Kowalski on a new topic. David Warren was primarily interested in the Marseille implementation of Prolog and the possibility of its further development. And Maarten focused his efforts on studying the theoretical foundations of logic programming and the Prolog language in particular.

Just a year ago, in 1971, Maarten van Emden defended his PhD thesis in computer science at the University of Amsterdam. After defending, he worked for a year as a research fellow at the IBM Thomas J. Watson Research Center, and then joined Donald Michie's group at the University of Edinburgh. Maarten, in collaboration with Robert Kowalski, developed a fixed-point semantics for Horn clauses. This work formed the basis of the semantics of logic programming. And then Maarten began research in the field of software verification and correctness.

In the same 1972, Alan Colmeroe asked Robert Kowalski to act as an external expert for the defense of the PhD thesis of Philippe Roussel — Alan's graduate student and researcher on the topic of automated reasoning.

In 1973, Alan and Philippe visited Robert in Edinburgh. They talked about the next implementation of the program, in which control annotations were added to the statements. Robert's reaction was very cool. In his opinion, this approach did not correspond to the logical methodology.

In 1974, Philippe Roussel's two-month trips to Edinburgh and David Warren's to Marseille resumed. Philippe became acquainted with the theory of structure sharing in the resolution method, developed in Edinburgh by Robert Boyer (Robert S. Boyer) and Jay Moore (J Strother Moore). Upon returning to Marseille, Philippe implemented the structure sharing method in the next version of the Prolog application.

The duo of Alan Colmerauer and Robert Kowalski proved to be very fruitful. Robert Kowalski focused on the philosophy and theory of logic, while Alan was interested in the practical results of implementing theoretical principles.

Alan, Robert, and David

David Warren (David H. D. Warren) is a graduate of the University of Edinburgh. In 1972, he became a postgraduate student and joined the Department of Machine Intelligence, headed by Donald Michie (Donald Michie). David was faced with the choice of a research topic that would become the subject of his dissertation. Donald Michie, as his supervisor, advised David to work with Robert Kowalski. Here is how David later recalled the beginning of his conversation with Robert Kowalski. "One cloudy October morning, Robert invited me over and sat me down on a leather sofa in his living room.

— I'll show you something interesting, — he began in a gloomy tone. — we call it logical programming…".

It became clear from the conversation that David was far from the first person with whom Robert discussed the topic of logical programming. Researcher Marten van Emden and student Austin Tate had already been on the leather sofa in the living room. Ignoring Robert's theoretical discussions, David agreed to explore the possibility of further developing the Marseille implementation of the Prolog application.

In the period from 1972 to 1974, David repeatedly visited Marseille and communicated with Alan Colmerauer's team. David quickly improved his knowledge of the theory of logic programming. Together with Alan Colmerauer and Fernando Pereira, he reworked the theory of metamorphic grammars. The metamorphic grammar allowed the use of parameterized grammar rules. In their publications, they renamed it to DC grammar. At the end of 1974, David added DC grammar to the Edinburgh version of the Prolog language compiler.

In the period from February to April 1973, Philippe Roussel, at the invitation of Robert Kowalski, again visited the University of Edinburgh. Long scientific discussions of problems with David Warren, Roger Boyer, and Jay Moore followed, after which Philippe created the resolution algorithm. He used the method of joint use of structures to represent logical formulas generated during deductive inference. But the main result of Philippe's business trip to Edinburgh was the understanding that a separate programming language was needed that would incorporate all the new solutions found.

In the period from May to June 1973, Alan's team formulated the basic concepts of the language: they chose syntax, basic primitives, and the method of computer interpretation. From June to the end of 1973, graduate students Gerard Battani, Henry Meloni, and Rene Bazzoli wrote a Prolog language interpreter in Fortran. However, Alan did not like that different parts of the language were written in different programming languages. From June to October 1973, Gerard Battani and Henry Meloni, under the guidance of Alan Colmerauer, rewrote the Prolog interpreter, previously written in Fortran. Now the supervisor of the interpreter was completely written in the Prolog language itself. The program contained about 2000 instructions and was the same size as the version of the interpreter written in Algol-W.

In December 1973, in Grenoble (Canada), Gerard Battani and Henry Meloni ported Prolog, completely written in the Prolog language, to the IBM System 360-67 computing complex.

David Warren actively helped Alan's team to finalize the next version of the Prolog application. In February 1974, after visiting Marseille, David brought two things to Edinburgh: a one-page code of the Warplan computer program and a one-foot-long box with cards containing the second version of Prolog. This version was written by Gerard Battani and Henry Meloni. The program code consisted half of Fortran modules and half of Prolog modules. The second version of Prolog made a positive impression on David. The ability to run the program on a DEC PDP-10 computing machine had great practical significance. After all, such computing complexes were becoming more and more common in the world. Annotations to clauses, which Robert Kowalski previously disliked, disappeared from the Prolog program code. They were replaced by random abbreviations that looked less intrusive.

In the fall of 1974, Marten van Emden visited Marseille once again. Alan told Marten about his Prolog application designed for natural language answers. The theoretical basis was first-order logic. Before that, in his research activities, Alan had never aimed to create a theory of logical programming. He was purely interested in creating a natural language parser. But over the years, Alan realized that to solve the problem, he needed a special programming language. At the same time, none of the existing languages suited Alan. During the discussion, Alan showed Marten side modules, including a simple compiler for a fictional programming language similar to Algol. Alan used Prolog to write the compiler.

Returning to Edinburgh, Marten showed David the compiler that Alan had written. David studied this program with great interest and then began writing his own versions. He sent Marten new versions of the Prolog compiler for discussion.

By the end of 1974, David Warren, together with Fernando Pereira, created a productive Prolog compiler for the DEC PDP-10, in which most of the code was written in the Prolog language itself. Both the code and the compiler became convincing proof of the possibility of using the Prolog logic programming language in practice. Moreover, this particular dialect of logic programming was named Edinburgh Prolog and for many years became the de facto standard of the language. Even today, when ISO Prolog standards exist, many developers continue to use the Edinburgh dialect.

On December 10, 1974, at the Edinburgh conference, David Warren presented the first Prolog user manual for DEC PDP-10 mainframes. The manual mentioned a supervisor written by David for the Edinburgh dialect, which was somewhat different from the Marseille syntax. David jokingly called his manual Epilog.

Finally, on September 13, 1975, David Warren wrote a compiler for the Marseille version of Prolog for the DEC PDP-10. He took the source code of the compiler written by Alan and then added declarations to external predicates in Macro-10 files. In the operating system environment, he linked the Macro-10 files with Prolog modules compiled by the interpreter. He obtained an interactive Prolog in which the compiled Prolog code became available for combination with the interpreted Prolog code.

Later, David came up with a new scheme in which he placed the compiler inside the interpreter. The compiler generated machine code that the DEC PDP-10 computer immediately executed. This solution represented a complex scheme of transition between interpreted and compiled code, as well as complex loading.

Despite the emergence of the Edinburgh dialect of the Prolog language, Alain Colmerauer continued to develop his Marseille dialect of Prolog. The project team completely rewrote the supervisor (in modern engineering, the term "kernel" is used), but retained the possibility of declaring infix operators. The compiler was supplemented with metamorphic grammar. René Bazzoli used a top-down parser to read Prolog rules.

In 1975, a whole team was engaged in porting the Prolog interpreter to the 16-bit Telemecanique T1600 minicomputer. The computer had a full 64 KB of RAM, and a virtual memory management system was written specifically for it.

In 1977, David Warren at the University of Edinburgh defended his PhD thesis in artificial intelligence. His supervisors were Robert Kowalski and Donald Michie.

Prolog and Everything, Everything, Everything

The interest of software developers in logical programming is fickle, both in the seventies of the last century and in the present time. Scientific publications raise interest and extremely high expectations that now all problems will be solved. And then comes disappointment, as after all inflated expectations and hype.

The first wave of interest in the methodology of logical programming arose in 1972 after a series of scientific publications by Robert Kowalski, Donald Kunera, Alan Colmer and others. Jacques Cohen invited representatives of Alan Colmer's team to Boston and introduced them to scientists from the Massachusetts Institute of Technology (MIT). A warm welcome was given to researchers from Marseille by Marvin Minsky (Marvin Minsky), (Eugene Charniak), Carl Hewitt (Carl Eddie Hewitt) and Terry Winograd (Terry Winograd). Then the developers visited Stanford. They visited John McCarthy's artificial intelligence laboratory (John McCarthy), met Cordell Green (Cordell Green) and talked with Robert Floyd (Robert Floyd).

However, as is often the case in the scientific world, after the enthusiastic admiration for the new direction in software engineering from 1972 to 1974, there was a decline. On the one hand, opponents of logical programming behaved extremely actively and aggressively. On the other hand, external developers did not see practical benefits for themselves in the application of Prolog syntax analysis.

The second wave of interest, not so much in logical programming as in the practical implementation of this theory, rose in 1974-1975. The development of the Edinburgh dialect of the Prolog language by David Warren rekindled the waning interest of researchers. In Edinburgh, Alan Bundy (Alan Bundy), Rod Burstall (Rod Burstall), Michael Gordon (Michael J. C. Gordon), Robin Milner (Robin Milner), and Gordon Plotkin (Gordon Plotkin) joined the development. The theory of logical programming was developed by Aaron Sloman (Aaron Sloman), Danny Bobrow (Daniel G. Bobrow), and even Carl Hewitt (Carl Hewitt). The idea of logical programming in the Prolog language penetrated many European universities. Among the pioneers were Luis Pereira (Luis Pereira) from Lisbon, Sten Ake Tarnlund (Sten Ake Tarnlund) from Stockholm, Peter Szeredi from Budapest (Peter Szeredi), and Maurice Bruynooghe (Maurice Bruynooghe) from Leuven (Belgium).

In 1974, after the creation of a separate interpreter and compiler, the Prolog language began to exist outside the Prolog application. More and more programmers showed genuine interest in the Prolog language: Keith Clark (Keith Clark) from Queen Mary College (Queen Mary College), Luís Pereira from Lisbon, Tomasz Pietrzykowski from University of Waterloo (University of Waterloo, Canada).

Henri Kanoui and Marc Bergman used Prolog to develop the Sycophante application, designed for symbol manipulation. Gérard Battani and Henri Meloni developed a speech recognition application for the University of Grenoble, capable of answering questions. The application ran on the IBM CP-CMS operating system, and the IBM System 360-67 computing complex produced approximately 200 unifications per second.

David Warren, Gérard Battani, and Henri Meloni could not keep up with requests for supplies from Hungary, Poland, Canada, Belgium, and installing the Prolog language on DEC PDP-10 computers. At that time, there was no concept of a "Prolog language distribution." Prolog files were multiplied, simply put, by copying.

Hélène Le Gloan, a graduate of the University of Montreal, excelled in installing the Prolog language. She performed her first installation of the Marseille version of the Prolog language in 1974 at her native University of Montreal. Then, in the same 1974, followed the installation of the Prolog language on the Control Data 6000 supercomputer in Warsaw (Poland). Hélène adapted the Prolog interpreter to the capabilities of the Control Data 6000 supercomputer. The volume of available addresses in the data structure turned out to be three times larger than provided by the Marseille version of Prolog. Hélène replaced all array accesses with packing and unpacking procedure calls.

In 1975, Robert Kowalski became an associate professor at Imperial College in London. The first thing he did was create a research group for logical programming, following the example of Alan Colmerauer. The location of London as one of the world's capitals made a huge contribution to the spread of the Prolog language on a global scale.

In 1976, to popularize the Prolog language, Robert Kowalski organized seminars at Imperial College, using the phrase "logical programming" to describe the seminar topic. Celebrities such as Alan Robinson, Alan Colmerauer, and Philippe Roussel participated in the seminars.

Conclusion

This is how the Prolog application, created in 1972 in Marseille for translating text from English to French, turned into the Prolog logical programming language, which saw the light of day in 1974 in Edinburgh!

Comments