caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Diego Olivier Fernandez Pons <Diego-Olivier.FERNANDEZ-PONS@cicrp.jussieu.fr>
To: "Kontra, Gergely" <kgergely@mlabdial.hit.bme.hu>
Cc: Caml-list@inria.fr
Subject: Re: [Caml-list] types & design advices (musical program)
Date: Mon, 21 Oct 2002 14:09:20 +0200 (DST)	[thread overview]
Message-ID: <Pine.A41.4.44.0210211336150.434394-100000@ibm1.cicrp.jussieu.fr> (raw)
In-Reply-To: <Pine.LNX.4.21.0210210935280.26877-100000@mlabdial.hit.bme.hu>

On Mon, 21 Oct 2002, Kontra, Gergely wrote:

> [...]
>
> >If you mean harmonisation, it is a well known problem and has been
> >studied in constraint programming world (since it is a declarative
> >problem).
> [...]
>
> That being the case, Prolog is the right language to implement this
> problem, isn't it? (Well, it doesn't have static type checking...)
>

Pure Prolog won't be of much help, so by Prolog we mean CLP (Prolog
IV, CHIP, etc.)

Prolog has several problems that haven't been yet correctly solved :
- no static type-checking, no type inference
- awfully slow (even compiled Prologs)
- unredable programs if their natural form is not declarative
- no modules (I saw recently a post by Fages in the prolog-list
proposing to develop a Caml-like module system, but for the moment it
hasn't been done), no first-class functions
- very few librairies

In the Lambda Prolog FAQ you can read that Lambda Prolog has :
- polymorphic typing
- modular programming
- abstract data types
- higher order programming

www.cse.psu.edu/~dale/lProlog/faq/faq.html

(There terms do not have always exactly the same meaning that in ML
world)

But Lambda Prolog is not yet a mature language and you still have
serious problems when you need to write non declarative code.

For the moment, the best systems seem to be CLP libraries over an
already existing language, like :
- ILOG Solver (C++)
- Screamer (Lisp)
- FaCiLe (Caml)

The FaCiLe description points out that :

"As FaCiLe is an OCaml library and not "yet another language", the
user benefits from type inference and string typing discipline, high
level of abstraction, modules and objects system, as well as native
code compilation efficiency, garbage collection and replay debugger,
all features of OCaml (among other) that allow to prototype and
experiment quickly : modeling, data processing and interface are
implemented with the same powerful and efficient language"


        Diego Olivier

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


       reply	other threads:[~2002-10-21 12:11 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Pine.LNX.4.21.0210210935280.26877-100000@mlabdial.hit.bme.hu>
2002-10-21 12:09 ` Diego Olivier Fernandez Pons [this message]
2002-10-18 11:11 Kontra, Gergely
2002-10-18 12:29 ` Diego Olivier Fernandez Pons
2002-10-18 14:40   ` Kontra, Gergely
2002-10-18 15:15     ` Thorsten Ohl
2002-10-19 14:54     ` Diego Olivier Fernandez Pons

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.A41.4.44.0210211336150.434394-100000@ibm1.cicrp.jussieu.fr \
    --to=diego-olivier.fernandez-pons@cicrp.jussieu.fr \
    --cc=Caml-list@inria.fr \
    --cc=kgergely@mlabdial.hit.bme.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).