module prolog scalability modularity gnu-prolog

module - Programación en grande con prólogo.



prolog scalability (3)

Estoy tratando de mantener mi código de 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 simples consult , pero eso se está volviendo engorroso a medida que aumenta el número de mis archivos y sucumbe a los choques de nombres. ¿Hay alguna construcción similar a la de una importación "típica", como

%-------------------------------------------------------------------- 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 de origen? Si es específico del programa, estoy usando gprolog . Gracias de antemano por cualquier ayuda.


GNU-Prolog no tiene un sistema de módulos genuino, por lo que su enfoque es actualmente el mejor que puede obtener. Tal vez GNU-Prolog podría agregar un sistema de módulos en el futuro, pero no apostaría un negocio en ello.

El sistema de módulos más frecuente permite definir en diferentes módulos predicados con el mismo nombre de predicado y aridad. De este modo se evitan choques de nombre de predicados. Los átomos y los funtores permanecen iguales en los límites de los módulos. Los sistemas como SICStus, YAP, SWI, Ciao, IF y la norma ISO tienen dicho sistema.

XSB ofrece otro tipo de sistema de módulos, llamado funtor.



Obtenga la versión actual de desarrollo de Logtalk, que proporciona soporte completo para la versión estable de GNU Prolog 1.4.0. Puede obtenerlo haciendo una verificación de Subversion o un clon de Git (consulte http://logtalk.org/download.html para obtener más información). O simplemente envíeme un correo privado y construiré un instalador para usted. Logtalk fue diseñado desde cero para la programación en general. Puede usarlo para escribir aplicaciones portátiles (Logtalk se ejecuta como está en nueve compiladores Prolog diferentes). Incluso puede usarlo para ejecutar el código del módulo Prolog en los compiladores de Prolog como GNU Prolog que no incluyen un sistema de módulos. Logtalk incluye más de cien ejemplos, bibliotecas portátiles, herramientas de desarrollo portátiles y documentación completa. Pasar de Prolog a Logtalk es bastante fácil. Escribir código portable vence portando todos los días ;-)