We use metalogic to define a suitable notion of module in logic programming. A module is viewed as a pair of logic programs, corresponding to the visible and the hidden part of the module, respectively. The construction of a module is implemented through a metalevel composition operator of object-level logic programs. We introduce metalevel operators for combining separate modules together. All the operators are straightforwardly defined by extending the standard vanilla metainterpreter with new clauses. More importantly, the semantics of modules and module composition operators is defined in terms of the standard semantics of logic programming in a compositional way.
META FOR MODULARIZING LOGIC PROGRAMMING
BROGI, A;MANCARELLA, PAOLO MARIA;PEDRESCHI, D;TURINI, F.
1992-01-01
Abstract
We use metalogic to define a suitable notion of module in logic programming. A module is viewed as a pair of logic programs, corresponding to the visible and the hidden part of the module, respectively. The construction of a module is implemented through a metalevel composition operator of object-level logic programs. We introduce metalevel operators for combining separate modules together. All the operators are straightforwardly defined by extending the standard vanilla metainterpreter with new clauses. More importantly, the semantics of modules and module composition operators is defined in terms of the standard semantics of logic programming in a compositional way.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.