There are only few limits imposed by the MINERVA implementation itself:
A term may not have more than 125 arguments.
An integer in MINERVA is represented by 64 bits i.e. corresponds to the Java data type "long", and can be as big as 1,000,000,000,000,000,000.
A large (order of several ten thousands) collection
of clauses with identic functor/arity may cause a
compiler overflow. MINERVA Versions prior to 2.3
do not report the overflow and silently produce invalid code,
which in turn causes a ArrayIndexOutOfBoundsException
at object load time.
The compiler of MINERVA Versions from 2.3 reports an error like
** minerva assembler: com.ifcomputer.minerva.MC26: codearea is too huge
If you hit this condition please declare the offending predicate
as dynamic. E.g. ":- dynamic(myfactdb/5)".
This will likely also improve the performace of your program, due
to the different optimization strategies used.
We are not aware of other hard coded limitations to the MINERVA engine, e.g. lengths of lists, size of atoms, etc.
Practical limits to program size and execution time depend heavily on your execution environment, notably your Java language processor, the operating system, and your hardware architecture.
| scroll to top |
|