home *** CD-ROM | disk | FTP | other *** search
-
-
- SYNOPSIS
- prolog [ -r restorefile ] [-s libfile] [-v] [-BOOT]
-
- COPYRIGHT
- HUProlog is freeware. It may be freely copied and redistributed,
- provided all the files present in the original
- distribution are included, unaltered. If it is redistrubted for
- profit it would be appreciated if 10 per cent or so of the
- distribution fee is sent to the authors listed below. They are by no
- means wealthy. Users of this software are asked to make a donation
- appropriate to their wealth and usage.
- Commercial Prolog's cost 160 pounds sterling...
-
- There is, of course, no guarantee or warranty of any kind.
-
- (c) 1990 C.Horn, M.Dziadzka, M.Horn
-
- DESCRIPTION
-
- HUProlog is, for most purposes a straight implementation of
- standard Edinburgh syntax Prolg as described in Colcksin and
- Mellish's ``Programming in Prolog'' and host of other works.
- The sections below detail the deviations.
- OPTIONS
- -r - Restore named saved state.
-
- -s - Consult named file at start-up
-
- -v - Turn off verbosity - no prompt (etc).
-
- -BOOT - Bootstrap HUProlog after recompilation
-
- OMMISIONS
-
- The most obvious ommision is that setof and bagof are not built-in.
- The directory lib contains Prolog source for these, and the
- much more efficient and useful findall/3 and findset/3.
-
- EXTENSIONS
- fileerrrors, fileerrors(on) - File errors cause an abort
- nofileerrors, fileeerrors(off) - File errors mere cause a fail.
-
- warn(off) - No warning messages Default
- warn(on) - Warning messages
- ocheck(off) - No occurs check during unification Default
- ocheck(on) - Occurs check udring unification (much slower with
- big terms, but it means unification cannot
- accidentally loop).
- sysmode(off) - System defined operators may not be changed.
- sysmode(on) - System define operators may be changed.
- echo(off) - Don't echo queries Default
- echo(on) - echo queries.
-
- is_member/2 - Fast list membership test
- no_member/2 - Fast list non-mebmbership test,
- sysappend/3 - Fast append for proper lists.
-
- assert(Term,Ref),
- asserta(Term,Ref),
- assertz(Term,Ref) - Database assertion returning database reference
- clause(Head,Body,Ref ) - Fast clause access using database reference
- abolist(Head,Body,Ref) - Fast clause abolition using database ref.
- retract(Term,Ref) - Fast database retract using reference
-
- sort/2 - Sort a list of terms.
- stats - Print memory usage statistics.
- argc/1 - Give number of uninterpreted command line args
- argv/2 - Get one of the uninterpreted command line args
- <<,>> - Bitwise shift functions for `is' expressions
- &,\,~ - Bitwise and, or, and not for `is' expressions
- &&,\\,/ - Boolean and, or and not for `is' expressions
-
-
- Errors can be trapped by defining the predicate error/2
- When an error occurs this will be invoked with the first
- argument bound to the goal causing the error, and the second to
- the associated error message.
-
- User interrupts (hitting the ESC key) can be trapped by defining
- the predicate interrupt/0. This is best done in the start-up file
- (usually ``prologrc''). The prologrc include simply turns on the
- tracer to allow debugging.
-
-
- START UP
- When HUProlog starts up it first loads its initial state. If no -r
- ``restore state' command line argument is given this is the file
- <HUPro$Dir>.huplstate.
-
- Next the start-up file is consulted. If no -s ``startup file''
- command line argument is given this is the file named in the
- <HUPro$RC> system variable. If this variable isn't set the
- file ``prologrc'' is tried. No error oocurs if the startup
- file doesn't exist.
-
-
- ADJUSTING MEMORY USAGE
-
- One unfortunate aspect of HUProlog's design is that there is no
- run-time way of changing the amount of memory it requires. This
- flaw will be fixed in the next release (it requires only some
- fairly menial hacks), but at the moment it stands.
-
- In order to adjust HUProlog's memory usage you have to recompile,
- having adjusted the values in h.manager. In this release, only
- binaries are given for files that aren't affected because a
- maintainable public version of HUProlog is due soonish. If you
- have Acorn's C release 3 simply edit h.manager and then:
-
- amu prolog
- prolog -BOOT
- save(huplstate).
- ^D
-
- Copy the new prolog binary and bare-prolog saved state to wherever
- you keep these things (probably <HUPro$Dir>).
-
- Serious users, short of the C-compiler, or user wishing information
- about bugs, features, further releases etc, may contact:
-
- Andrew Stevens, JANET: as@uk.ac.ed.aipna
- 18 Kings Meadow, INTERNET: as@aipna.ed.ac.uk
- Overton, UUCP: ...!ukc!aipna!as
- Basingstoke,
- HANTS.
-
- RG25 3HP
-
- Who for suitable small bribe in cash or kind will stuff a Floppy
- full of whatever memory configuration HUPrologs are desired.
-
-
- AUTHORS
- C.Horn, M.Dziadzka, M.Horn
- Humboldt-University
- Department of Mathematics
- GDR 1086 Berlin, P.O.Box 1297
-
- Archimedes port: Andrew Stevens (address above)
-
- BUGS
-
- open/1 always fails.
-
- see's behaviour when not properly nested with seen's
- is not entirely standard I think.
-
- If you attempt to redefine a system predicate in
- the prologrc file the system crashes.
-