>Folks,
> I am new to Prolog. I would like to know if the language is
>used for any practical programming or just for theory.
I am using Prolog for building commercial applications.
> What is the
>scope for the language ?
What you have in mind by "scope"?..
> Is object oriented PROLOG standardised ?
No
A.L.
Please, I'd like to know what commercial/free/gnu interpreter/compiler
you use.
Thanks.
-- Antonio
SICStus. I know that people are using also SWI for commercial
applications
A.L.
-- A.
There is no question that there are people using Prolog for real
applications. I will include Mercury in the discussion because it is a
Prolog, notwithstanding the weird name. Anyway, consider the programs
of the following software vendor:
Their ARGOS Decision Support System (DSS) for enhancing Crisis
Management for incidents with nuclear reactors releases has been used
for quite a few years in many countries: Australia, Brazil, Canada,
Sweden, etc. They also work with airport management: their slot
coordination solution (SCORE) is used in 22 countries in 100 airports;
quite impressive, isn't it. Pay them a visit, and you will see many
other applications there.
My favorite Prolog (Mercury, in fact) program is Prince. Take a look:
There is a free version. It prepares high quality documents and books,
creating pdf files from HTML, XML sources. I believe that Addison
Wesley uses prince.
I could go on with my examples. However, I want to make a comment
here. I noticed that most successful applications in Prolog uses typed
Prolog. Both Mercury and Visual Prolog are typed. I am not sure
whether typed Prolog is better for real world applications. This would
be an interesting topic to discuss.
>O
>
>I could go on with my examples. However, I want to make a comment
>here. I noticed that most successful applications in Prolog uses typed
>Prolog. Both Mercury and Visual Prolog are typed. I am not sure
>whether typed Prolog is better for real world applications. This would
>be an interesting topic to discuss.
This is your personal opinion that I don't share. Although it would be
nice to have typed Prolog, Mercury is not ready for commercial
applications, and Visual Prolog is rather a toy than real Prolog.
A.L.
That would be news to the people who *are* using Mercury for commercial
applications.
Zoltan Somogyi <z...@cs.mu.OZ.AU> http://www.cs.mu.oz.au/~zs/
Department of Computer Science and Software Engineering, Univ. of Melbourne
>A.L. <alew...@zanoza.com> writes:
>>Mercury is not ready for commercial
>>applications,
>
>That would be news to the people who *are* using Mercury for commercial
>applications.
This is their problem, not mine. Maybe I have different notion of
"commercial application" and "commercial environment".
A.L.
I'm using SWI Prolog to manipulate syntax trees and generate C++ code,
at the office.
At home, I develop in the Euler project
(http://sourceforge.net/projects/eulersharp/) that uses Prolog (jTrolog
or SWI) to implement a reasoner engine for N3 ( Notation 3 ) language.
To win significant mindshare and build some momentum, any
novel programming language surely needs to target popular
platforms and integrate with their IDEs, and preferably
offer a migration path from an established language.
Like it or not, the most important platforms for enterprise
applications are Microsoft's (was COM, ActiveX, now .NET but
still maturing, like Java in its 1.1, 1.2 days?) and the Java
platform (never mind that language: It's The Platform, Stupid!).
Linux, seemingly favoured by the Mercury team, has a hotch-potch
of libraries but is a poor third (despite its popularity as a
cheap host for Apache HTTP Server, MySQL etc.)
Developers need mature web services, XML, cryptography, mail,
telephony, messaging, DB interfaces and a healthy marketplace
for components. The relevant IDEs are of course Visual Studio
and Eclipse (not ECLiPSe) or NetBeans. VS integration may still
involve a license fee to Microsoft, but Eclipse already embraces
umpteen languages, some less important than Mercury ;-)
Porting Prolog apps to Mercury generally requires a redesign,
not least because of "an unfortunate limitation of the current
Mercury implementation (partially instantiated modes don't yet
work correctly)" [from "The Prolog to Mercury Transition Guide",
today's snapshot]. I'm happy to rewrite my Prolog apps in better
Prolog style/practice to aid porting, but this is too much ;-(
Do you have a roadmap or priorities for issues such as Unicode
support, Cygwin independence on Windows, support for the Java
backend, partially instantiated terms, IDE integration?
regards - Paul Singleton
> Zoltan Somogyi wrote:
>
>> A.L. <alew...@zanoza.com> writes:
>>
>>> Mercury is not ready for commercial
>>> applications,
...
> Do you have a roadmap or priorities for issues such as Unicode
> support, Cygwin independence on Windows, support for the Java
> backend, partially instantiated terms, IDE integration?
>
> regards - Paul Singleton
Sorry, what is a partially instantiated term in the Mercury sense ?
And, since Mercury is in my periscope for some time, I'd like also to
know about its roadmap.
> Sorry, what is a partially instantiated term in the Mercury sense ?
OK, I found the answer myself :
An incomplete data structure is a data structure containing a variable.
Such a data structure is said to be `partially instantiated' or
`incomplete.'
Also a variable can be either fully or partially instantiated:
X = entity. % X is fully instantiated,
% has a specific value
X = rel(Y). % X is only partially instantiated,
% as Y is a variable
Prolog is not dead. I solve logical problems with Prolog programs.
They have been published in Finnish and in English at the address:
http://koti.24.fi/prolog/
I use SWI-Prolog also in my personal commercial programs. Of course,
they have not been published.