Abstract
This paper explores a seemingly very simple idea—an operation for extending a term with extra (start or end) arguments to yield a new term. This allows the definition a variety of structural operators that provide the power of functional composition and higher-order features on top of the non-directional and non-deterministic (relational) behavior of the underlying logic programming setting. Syntax alone is taken to be meaningless, semantics being associated to syntax in context. Multiple semantic views of each term are therefore possible, in different contexts. One such semantic view is structural, whereby any term is taken as an implicit abstraction of another term over some of its subterms. The standard operational semantics is extended with a rewrite step prior to each goal invocation, that appeals to a functional rewrite semantics to interpret certain terms as applications of implicit inner structural abstractions to inner arguments. The approach is first described through meta-level functional definitions, and then an implementation is shown through a collection of standard Prolog predicates. The powerful gain in expressiveness is thus achieved without any extension of the underlying machinery, much in the spirit of an old claim by D. H. Warren [5]. The scheme was motivated by the needs of a large real-world application [4] where it is now in use.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Weidong Chen, Michael Kifer, and David S. Warren. HiLog: a foundation for higher-order logic programming. The Journal of Logic Programming, 15(3):187–230, 1993. 279
Dale A. Miller and Gopalan Nadathur. Higher-order logic programming. In G. Goos and J. Hartmanis, editors, Third International Conference on Logic Programming, Proceedings, pages 448–462. Springer, 1986. 276, 277
Gopalan Nadathur and Dale A. Miller. An overview of λPROLOG. In Robert A. Kowalski and Kenneth A. Bowen, editors, Fifth International Conference on Logic Programming, Proceedings, volume 2, pages 810–827. MIT Press, 1988. 276, 277
António Porto. Towards fully integrated information services. In Lígia Maria Ribeiro and José Marques dos Santos, editors, The Changing Universities: The Challenge of New Technologies, Eunis 2002, The 8th International Conference of European University Information Systems, Proceedings, pages 319–324. FEUP edições, Universityof Porto, Portugal, 2002. 275, 276, 277, 282, 284, 288
D. H. Warren. Higher-order extensions to PROLOG: are they needed? In J.E. Hayes, Donald Michie, and Y-H. Pao, editors, Machine Intelligence 10, pages 441–454. Ellis Horwood, 1982. 275, 276, 277
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Porto, A. (2002). Structural Abstraction and Application in Logic Programming. In: Hu, Z., Rodríguez-Artalejo, M. (eds) Functional and Logic Programming. FLOPS 2002. Lecture Notes in Computer Science, vol 2441. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45788-7_17
Download citation
DOI: https://doi.org/10.1007/3-540-45788-7_17
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-44233-2
Online ISBN: 978-3-540-45788-6
eBook Packages: Springer Book Archive