Estoy tratando de mantener mi código Prolog modular, y me preguntaba si alguien tenía algún consejo sobre cómo hacer esto. La forma en que estaba haciendo esto con simple consult
s, pero que se está volviendo engorroso a medida que el número de mis archivos aumenta y sucumbe a los conflictos de nombres. ¿Hay alguna construcción similar a la de una importación "típica", comoProgramación en grande con prólogo
%-------------------------------------------------------------------- compiler.pl
[ scanner, parser, codegen ] .
%-------------------------------------------------------------------- compile
% compile(S, I) :- Compiling the source string S gives the list of instructions
% I
compile(S, I) :- scan(S, T), parse(T, A), codegen(A, I) .
%-------------------------------------------------------------------------------%
en la parte superior de un archivo fuente? Si es específico del programa, estoy usando gprolog
. Gracias de antemano por cualquier ayuda.
Los sistemas de módulos basados en predicados mencionados son todos muy similares, ya sean de código abierto o comercial. La transferencia de uno a otro es relativamente simple. Es decir, tienes varios proveedores posibles. El sistema Logtalk es bastante diferente y solo hay una fuente. – false
Sí, Logtalk es diferente. Pero, a pesar de las diferencias, Logtalk subsume los módulos de Prolog en la mayoría de sus funcionalidades y puede compilar los módulos de Prolog como objetos. Por ejemplo, la mayor parte de la biblioteca básica de SWI-Prolog actual se puede compilar y usar como objetos solo cambiando la extensión del nombre de archivo de .pl a .lgt. –