This Prolog Life: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
;John Fletcher's home on the Web | ;John Fletcher's home on the Web | ||
__NOTOC__ | __NOTOC__ | ||
“Prolog is more than a language - it is a way of living :-)” Bart Demoen | |||
==Prolog== | ==Prolog== | ||
Line 9: | Line 9: | ||
===Why use Prolog?=== | ===Why use Prolog?=== | ||
Prolog is a tool for solving problems, rather than producing | Prolog is a tool for solving problems, rather than producing “software product”, and it will appeal to you if: | ||
* You want your programs to be readable, and to have a close correspondence with their specifications; | * You want your programs to be readable, and to have a close correspondence with their specifications; | ||
* Statements like x = x + 1 offend your mathematical sensibility; | * Statements like x = x + 1 offend your mathematical sensibility; | ||
* You like to develop programs incrementally | * You like to develop programs incrementally – with an interactive top-level, interactive debugging, and the ability to test (execute) program fragments independently; | ||
* You want fewer lines of code and therefore fewer faults; | * You want fewer lines of code and therefore fewer faults; | ||
* You prefer to work with a handful of big ideas, rather than a lot of small ones; | * You prefer to work with a handful of big ideas, rather than a lot of small ones; | ||
Line 22: | Line 22: | ||
* [[Logic Programming and the Internet]]. Prolog is unequalled as a language for expressing queries and integrity constraints, and for processing text, which make it an excellent choice for Internet applications. | * [[Logic Programming and the Internet]]. Prolog is unequalled as a language for expressing queries and integrity constraints, and for processing text, which make it an excellent choice for Internet applications. | ||
* XML documents and Prolog terms have the same | * XML documents and Prolog terms have the same ‘tree’ structure, which makes it easy to program with XML and Prolog. My free code for [[Parsing XML with Prolog]] makes it even easier. | ||
* Recommended [http://www.binding-time.co.uk/prolog_books.html Prolog programming books]. | * Recommended [http://www.binding-time.co.uk/prolog_books.html Prolog programming books]. | ||
* My solutions to some puzzles in Prolog: | * My solutions to some puzzles in Prolog: |
Revision as of 16:00, 12 May 2015
- John Fletcher's home on the Web
“Prolog is more than a language - it is a way of living :-)” Bart Demoen
Prolog
Ever since I first learned Prolog, more than 20 years ago, it has been my preferred programming language.
Why use Prolog?
Prolog is a tool for solving problems, rather than producing “software product”, and it will appeal to you if:
- You want your programs to be readable, and to have a close correspondence with their specifications;
- Statements like x = x + 1 offend your mathematical sensibility;
- You like to develop programs incrementally – with an interactive top-level, interactive debugging, and the ability to test (execute) program fragments independently;
- You want fewer lines of code and therefore fewer faults;
- You prefer to work with a handful of big ideas, rather than a lot of small ones;
If you want to find out about Prolog on the Web, start with the Frequently Asked Questions for comp.lang.prolog.
Other useful links include:
- Logic Programming and the Internet. Prolog is unequalled as a language for expressing queries and integrity constraints, and for processing text, which make it an excellent choice for Internet applications.
- XML documents and Prolog terms have the same ‘tree’ structure, which makes it easy to program with XML and Prolog. My free code for Parsing XML with Prolog makes it even easier.
- Recommended Prolog programming books.
- My solutions to some puzzles in Prolog:
Although Prolog is regarded as a niche language, it's a very versatile language. I believe that the programming languages used in 2050 will owe more to Prolog than to any other language.