Re: Books or Implementations and ISO Prolog.



Bart is right that IF/Prolog is the only system to fully implement Part
2 on Modules. To call it a bad standard is though, not fair. Our
development of some very large applications - more than 50 000 lines of
source code - using IF/Prolog, have shown that the module concept is in
my opinion correct from design and excellent to re-use code and pays
off when maintaining applications over many years - even decades.

The combination of "static" module declarations for defining predicates
and their module scope, combined with the ability to execute meta
predicates in local or external module scope provides all the
flexibility you need. A static module concept allows our compiler to
optimize between predicate definitions, increasing performance for
compiled code.

The only "overhead" in software engineering terms is that you should
define which predicates are dynamic and have a sound tree of modules,
only dynamic predicates are modifyable by assert/retract; but this is
in my opinion, engineering rigour rather than an overhead, I think many
other systems also have this requirement.

A non-ISO module system which leads to name conflicts or where
C/C++/Java code cannot be included in a specific module should be
avoided at all cost. Name based module concepts have big disadvantages
when writing meta interpreters.

As a "good tip" I would advise declaring dynamic predicates in a
separate module, you can then easily write them for debugging with
listing @ module ..., importing the module also
imports the "right" to modify those predicates.

For more information on IF/Prolog see
http://www.ifcomputer.de/Products/Prolog/home_en.html

I should say that I work for IF Computer.... :-)

.



Relevant Pages