Abstract
The paper investigates the implementation of lazy narrowing in the framework of a graph reduction machine. By extending an appropriate architecture for purely functional languages an abstract graph narrowing machine for a functional logic language is constructed. The machine is capable of performing unification and backtracking. The techniques used in functional languages to cope with lazy evaluation are not directly applicable, but must be modified due to the logic component of the implemented language. A prototype implementation of the new machine has been developed.
This work has been partially supported by the german-spanish cooperation action HA 24/B and by the spanish projects PRONTIC TIC 89/0104 and Precompetitivo UPM A-90002001/44.
Preview
Unable to display preview. Download preview PDF.
References
G. P. Balboni, P. G. Bosco, C. Cecchi, R. Melen, C. Moiso, G. Sofi: Implementation of a Parallel Logic Plus Functional Language, in: P. Treleaven (ed.), Parallel Computers: Object Oriented, Functional and Logic, Wiley 1989, 175–214.
M. Bellia, G. Levi: The Relation between Logic and Functional Languages, Journal of Logic Prog., Vol.3, 1986, 217–236.
P. G. Bosco, C. Cecchi, C. Moiso: An extension of WAM for K-LEAF: A WAM-based compilation of conditional narrowing, Proc. Conf. on Logic Prog., MIT Press 1989, 318–333.
P. G. Bosco, E. Giovannetti: IDEAL: An IDeal DEductive Applicative Language, Proc. IEEE Symp. on Logic Prog., IEEE Comp. Soc. Press 1986, 89–94.
R. Echahed: On completeness of narrowing strategies, CAAP 1988, LNCS 299, Springer 1988, 89–101.
J. Fairbairn, S. C. Wray: TIM: A Simple, Lazy Abstract Machine to Execute Supercombinators, Conf. on Func. Prog. and Comp. Architec., LNCS 274, Springer 1987, 34–59.
L. Fribourg: SLOG: A Logic Programming Language Interpreter Based on Clausal Superposition and Rewriting, Proc. Symp. on Logic Prog., IEEE Comp. Soc. Press 1985, 172–184.
D. de Frutos-Escrig, M. I. Fernández-Camacho: On Narrowing Strategies for Partial Non-Strict Functions, 1990 (submitted for publication).
E. Giovannetti, G. Levi, C. Moiso, C. Palamidessi: Kernel LEAF: A Logic plus Functional Language, to appear in JCSS.
D. DeGroot, G. Lindstrom: Logic Programming: Functions, Relations, Equations, Prentice Hall, 1986.
M. Hanus: Compiling Logic Programs with Equality, to appear in Proc. Workshop on Prog. Language Implementation and Logic Prog., Linköping, Sweden, LNCS, Springer 1990.
A. Josephson, N. Dershowitz: An Implementation of Narrowing, Journal of Logic Prog. 6, 1989, 55–77.
H. Kuchen, R. Loogen, J. J. Moreno-Navarro, M. Rodríguez-Artalejo: Graph-Based Implementation of a Functional Logic Language, European Symp. on Prog. (ESOP) 1990, LNCS 432, Springer 1990, 271–290.
G. Lindstrom: Implementing Logical Variables on a Graph Reduction Architecture, Workshop on Graph Reduction, LNCS 279, Springer 1987, 328–400.
R. Loogen, H. Kuchen, K. Indermark, W. Damm: Distributed Implementation of Programmed Graph Reduction, Conf. on Parallel Architectures and Languages Europe (PARLE) 1989, LNCS 365, Springer 1989, 136–157.
J. J. Moreno-Navarro, H. Kuchen, R. Loogen, M. Rodríguez-Artalejo: Lazy Narrowing in a Graph Machine, Aachener Informatik-Berichte Nr. 90-11, RWTH Aachen, 1990.
J. J. Moreno-Navarro, M. Rodríguez-Artalejo: BABEL: A functional and logic programming language based on constructor discipline and narrowing, Conf. on Algebraic and Logic Prog., LNCS 343, Springer 1989, 223–232.
J. J. Moreno-Navarro, M. Rodríguez-Artalejo: Logic Programming with Functions and Predicates: The Language BABEL, Technical Report DIA/89/3, Universidad Complutense, Madrid 1989, to appear in the J. of Logic Prog.
J. J. Moreno-Navarro: Diseño, semántica e implementación de BABEL, un lenguaje que integra la programmación functional y lógica, Ph.D. Thesis, Facultad de Informática UPM, Madrid, July 1989, (in spanish).
A. Mück: Compilation of Narrowing, to appear in Proc. Workshop on Prog. Language Implementation and Logic Prog., Linköping, Sweden, LNCS, Springer 1990.
U. S. Reddy: Narrowing as the Operational Semantics of Functional Languages, IEEE Int. Symp. on Logic Prog., IEEE Computer Society Press 1985, 138–151.
U. S. Reddy: Functional Logic Languages, Part I, Workshop on Graph Reduction, LNCS 279, Springer 1987, 401–425.
D. H. D. Warren: An Abstract PROLOG Instruction Set, Technical Note 309, SRI International, Menlo Park, California, 1983.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1990 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
José Moreno-Navarro, J., Kuchen, H., Loogen, R. (1990). Lazy narrowing in a graph machine. In: Kirchner, H., Wechler, W. (eds) Algebraic and Logic Programming. ALP 1990. Lecture Notes in Computer Science, vol 463. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-53162-9_47
Download citation
DOI: https://doi.org/10.1007/3-540-53162-9_47
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-53162-3
Online ISBN: 978-3-540-46738-0
eBook Packages: Springer Book Archive