Fifty Years of Prolog and Beyond
From MaRDI portal
Abstract: Both logic programming in general, and Prolog in particular, have a long and fascinating history, intermingled with that of many disciplines they inherited from or catalyzed. A large body of research has been gathered over the last 50 years, supported by many Prolog implementations. Many implementations are still actively developed, while new ones keep appearing. Often, the features added by different systems were motivated by the interdisciplinary needs of programmers and implementors, yielding systems that, while sharing the "classic" core language, and, in particular, the main aspects of the ISO-Prolog standard, also depart from each other in other aspects. This obviously poses challenges for code portability. The field has also inspired many related, but quite different languages that have created their own communities. This article aims at integrating and applying the main lessons learned in the process of evolution of Prolog. It is structured into three major parts. Firstly, we overview the evolution of Prolog systems and the community approximately up to the ISO standard, considering both the main historic developments and the motivations behind several Prolog implementations, as well as other logic programming languages influenced by Prolog. Then, we discuss the Prolog implementations that are most active after the appearance of the standard: their visions, goals, commonalities, and incompatibilities. Finally, we perform a SWOT analysis in order to better identify the potential of Prolog, and propose future directions along which Prolog might continue to add useful features, interfaces, libraries, and tools, while at the same time improving compatibility between implementations.
Recommendations
Cites work
- 1983–1993: The wonder years of sequential Prolog implementation
- \(\text{ECL}^{\text{i}}\text{PS}^{\text{e}}\) -- from LP to CLP
- A design and implementation of the extended Andorra model
- A Flexible, (C)LP-Based Approach to the Analysis of Object-Oriented Programs
- A higher-order abstract syntax approach to verified transformations on functional programs
- A logical reconstruction of Prolog II
- A Machine-Oriented Logic Based on the Resolution Principle
- A polymorphic type system for Prolog
- A Prolog technology theorem prover: A new exposition and implementation in Prolog
- Absys: the first logic programming language —A retrospective and a commentary
- Algorithm = logic + control
- An efficient context-free parsing algorithm
- An overview of Ciao and its design philosophy
- Automatic compile-time parallelization of logic programs for restricted, goal level, independent and parallelism
- Binary Decision Diagrams
- Coding guidelines for Prolog
- Coinductive Logic Programming
- Coinductive Logic Programming and Its Applications
- Compiling constraints in clp(FD)
- Constraint answer set programming without grounding
- Constraint Handling Rules
- Constraint Logic Programming Using ECLiPSe
- Definite clause grammars for language analysis - A survey of the formalism and a comparison with augmented transition networks
- Delimited continuations for Prolog
- Description and optimization of abstract machines in a dialect of Prolog
- Design, implementation, and evaluation of the constraint language cc(FD)
- From tuple spaces to tuple centres
- Guarded horn clauses
- scientific article; zbMATH DE number 1615263 (Why is no real title available?)
- scientific article; zbMATH DE number 1692888 (Why is no real title available?)
- scientific article; zbMATH DE number 1696792 (Why is no real title available?)
- scientific article; zbMATH DE number 3644469 (Why is no real title available?)
- scientific article; zbMATH DE number 3874667 (Why is no real title available?)
- scientific article; zbMATH DE number 3814942 (Why is no real title available?)
- scientific article; zbMATH DE number 3965423 (Why is no real title available?)
- scientific article; zbMATH DE number 3967882 (Why is no real title available?)
- scientific article; zbMATH DE number 3972162 (Why is no real title available?)
- scientific article; zbMATH DE number 3982556 (Why is no real title available?)
- scientific article; zbMATH DE number 4094866 (Why is no real title available?)
- scientific article; zbMATH DE number 3659003 (Why is no real title available?)
- scientific article; zbMATH DE number 3731310 (Why is no real title available?)
- scientific article; zbMATH DE number 42778 (Why is no real title available?)
- scientific article; zbMATH DE number 43016 (Why is no real title available?)
- scientific article; zbMATH DE number 3466489 (Why is no real title available?)
- scientific article; zbMATH DE number 1223557 (Why is no real title available?)
- scientific article; zbMATH DE number 1254022 (Why is no real title available?)
- scientific article; zbMATH DE number 1312992 (Why is no real title available?)
- scientific article; zbMATH DE number 549955 (Why is no real title available?)
- scientific article; zbMATH DE number 1058664 (Why is no real title available?)
- scientific article; zbMATH DE number 1948416 (Why is no real title available?)
- scientific article; zbMATH DE number 1368925 (Why is no real title available?)
- scientific article; zbMATH DE number 1368932 (Why is no real title available?)
- scientific article; zbMATH DE number 1368933 (Why is no real title available?)
- scientific article; zbMATH DE number 1875386 (Why is no real title available?)
- scientific article; zbMATH DE number 1890628 (Why is no real title available?)
- scientific article; zbMATH DE number 2090557 (Why is no real title available?)
- scientific article; zbMATH DE number 773979 (Why is no real title available?)
- scientific article; zbMATH DE number 788036 (Why is no real title available?)
- scientific article; zbMATH DE number 788038 (Why is no real title available?)
- scientific article; zbMATH DE number 867332 (Why is no real title available?)
- scientific article; zbMATH DE number 7453099 (Why is no real title available?)
- scientific article; zbMATH DE number 7453126 (Why is no real title available?)
- scientific article; zbMATH DE number 7102019 (Why is no real title available?)
- scientific article; zbMATH DE number 3395362 (Why is no real title available?)
- Hybrid type checking
- Improving the ISO Prolog Standard by Analyzing Compliance Test Results
- Inductive Logic Programming: Theory and methods
- Infinite computation, co-induction and computational logic
- Integrated program debugging, verification, and optimization using abstract interpretation (and the Ciao system preprocessor)
- Interval-based resource usage verification by translation into Horn clauses and an application to energy consumption
- Introducing global constraints in CHIP
- Lazy stream manipulation in prolog via backtracking: the case of \textbf{2P-Kt}
- lean\(T^ AP\): Lean tableau-based deduction
- Learn Prolog now!
- Linear resolution with selection function
- Logic program specialisation through partial deduction: Control issues
- Logic Programming
- Logic Programming
- Logic Programming
- Logic Programming
- Logic Programming
- Logic programming in the 1970s
- Logic programs with stable model semantics as a constraint programming paradigm
- Modules for Prolog Revisited
- Negation and control in PROLOG
- Nondeterministic Algorithms
- On applying or-parallelism and tabling to logic programs
- On the implementation of GNU Prolog
- Parallelizing irregular and pointer-based computations automatically: Perspectives from logic and constraint programming
- PARLOG: parallel programming in logic
- Probabilistic Horn abduction and Bayesian networks
- Programming finite-domain constraint propagators in Action Rules
- Programming Languages and Systems
- Programming with higher-order logic.
- Reactive computing as model generation
- Resolution for skeptical stable model semantics
- Safe \& efficient gradual typing for TypeScript
- Semantic code browsing
- SICStus Prolog -- the first 25 years
- Statistical relational artificial intelligence: logic, probability, and computation
- SWI-Prolog
- SWI-Prolog and the web
- The BinProlog experience: architecture and implementation choices for continuation passing Prolog and first-class logic engines
- The Boolean constraint solver of SWI-Prolog (system description)
- The DLV system for knowledge representation and reasoning
- The execution algorithm of mercury, an efficient purely declarative logic programming language
- The language features and architecture of B-Prolog
- The Semantics of Predicate Logic as a Programming Language
- The WAM case study: Verifying compiler correctness for Prolog with KIV
- The well-founded semantics for general logic programs
- The YAP prolog system
- Total Precedence Relations
- Towards Typed Prolog
- Using SWISH to realize interactive web-based tutorials for logic-based languages
- XSB: extending Prolog with tabled logic programming
Cited in
(5)
This page was built for publication: Fifty Years of Prolog and Beyond
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q6063890)