Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!wuarchive!husc6!bloom-beacon!eru!luth!sunic!mcsun!inria!irisa!picart From: picart@irisa.irisa.fr (Marc Picart) Newsgroups: comp.lang.prolog Subject: Re: logic programs -> procedural lang? Summary: declarations for lazzy compilers. Keywords: Prolog, typing, compiler efficiency Message-ID: <1503@irisa.irisa.fr> Date: 25 Sep 89 11:51:05 GMT References: <27335@shemp.CS.UCLA.EDU> <869@gamera.cs.utexas.edu> <10822@eerie.acsu.Buffalo.EDU> Organization: IRISA, Rennes (Fr) Lines: 28 In article <10822@eerie.acsu.Buffalo.EDU>, axaris@cs.buffalo.edu (Vassilios Axaris) writes: > > Hello, > > I have been surprized when I first got my Turbo Prolog compiler, in that I was > required to specify the type of objects being used. Later, I realized that even > though this was putting a burden on the programmer, as well as deviating from > the standard, it could be (as it was I believe) useful in minimizing the runtime > type checking of the objects, in Common Lisp manner. In today's RISC world, I > think it would be very useful to include such declarations to aid the compiler > in creating efficient code, by minimizing tag processing. > How does the Prolog community feel about such an addition? Is it reasonable to > do it for the sake of improved execution speed on workstation type environments? > > Vassilios E. Axaris My opinion is that the compiler can infere a lot of the declarations by itself. (you can see the work of C. S. Mellish or S. K. Debray) I don't think that, in logic programming, it is necessary for the programmer to help the compiler. The reason is that the aim with high level languages, such as Prolog, is to separate the logic specification, which is the responsability of the programmer, from the implementation which is the responsability of the compiler. Marc Picart.