Abstract
We describe a definitional approach to the combination of functional and logic programming based on the theory of Partial Inductive Definitions. The described method produces programs directly executable in the definitional programming language GCLA. We show both a basic calculus for functional logic program definitions and discuss a refined version where the rules definitional resolution, definitional reflection, and definitional axiom are altered to be better suited for functional evaluation and equation solving.
This work was carried out as part of the work in ESPRIT working group GENTZEN and was funded by The Swedish Board for Industrial and Technical Development (NUTEK).
Preview
Unable to display preview. Download preview PDF.
References
H. Aït-Kaci and A. Podelski. Towards a meaning of life. Journal of Logic Programming, 16:195–234, 1993.
S. Antoy. Definitional trees. In Int. Conf. on Algebraic and Logic Programming ALP'92, Springer LNCS 632, pages 143–157. Springer-Verlag, 1992.
S. Antoy, R. Echahed, and M. Hanus. A needed narrowing strategy. In Proc. 21st ACM Symposium on Principles of Programming Languages, pages 268–279, 1994.
M. Aronsson. A definitional approach to the combination of functional and relational programming. Research Report SICS T91:10, Swedish Institute of Computer Science, 1991.
M. Aronsson. Methodology and programming techniques in GCLAII. In Proc. of Extensions of logic programming, ELP'91, Springer LNAI 596, 1992.
M. Aronsson. GCLA, The Design, Use, and Implementation of a Program Development System. PhD thesis, Stockholm University, Stockholm, Sweden, 1993.
M. Aronsson. Implementational issues in GCLA: A-sufficiency and the definiens operation. In Proc. of Extensions of logic programming, ELP'92, Springer LNAI 660, 1993.
G. Falkman and O. Torgersson. Programming methodologies in GCLA. In Extensions of logic programming, ELP'93, pages 120–151, Springer LNAI 798, 1994.
E. Giovannetti, G. Levi, C. Moiso, and C. Palamidessi. Kernel-LEAF: A logic plus functional language. Journal of Computer and System Sciences, 42:139–185, 1991.
L. Hallnäs. Partial inductive definitions. Theoretical Computer Science, 87(1):115–142, 1991.
L. Hallnäs and P. Schroeder-Heister. A proof-theoretic approach to logic programming. Journal of Logic and Computation, 1(2):261–283, 1990. Part 1: Clauses as Rules.
L. Hallnäs and P. Schroeder-Heister. A proof-theoretic approach to logic programming. Journal of Logic and Computation, 1(5):635–660, 1991. Part 2: Programs as Definitions.
M. Hanus. The integration of functions into logic programming; from theory to practice. Journal of Logic Programming, 19/20:593–628, 1994.
P. Kreuger. GCLA II: a definitional approach to control. In Extensions of logic programming, ELP91, Springer LNAI 596, 1992.
P. Kreuger. Axioms in definitional calculi. In Extensions of logic programming, ELP93, Springer LNAI 798, 1994.
P. Kreuger. Computational Issues in Calculi of Partial Inductive Definitions. PhD thesis, Department of Computing Science, University of Göteborg, Göteborg, Sweden, 1995.
J. Lloyd. Foundations of Logic Programming. Springer Verlag, second extended edition, 1987.
J. Lloyd. Combining functional and logic programming languages. In Proceedings of the 1994 International Logic Programming Symposium, ILPS'94, 1994.
R. Loogen, F. López-Fraguas, and M. Rodríguez-Artalejo. A demand driven computation strategy for lazy narrowing. In Proc. of the 5th Int. Symposium on Programming Language Implementation and Logic Programming,PLIP'93, pages 184–200, Springer LNCS 714, 1993.
J. J. Moreno-Navarro and M. Rodríguez-Artalejo. Logic programming with functions and predicates: The language BABEL. Journal of Logic Programming, 12:191–223, 1992.
L. Naish. Adding equations to NU-Prolog. In Proc. of the 3rd Int. Symposium on Programming Language Implementation and Logic Programming, pages 15–26, Springer LNCS 528, 1991.
S. Okui, A. Middeldorp, and T. Ida. Lazy narrowing: Strong completeness and eager variable elimination (extended abstract). In TAPSOFT'95: Theory and Practice of Software Development, pages 394–408. Springer LNCS 915, 1995.
P. Padawitz. Computing in Horn Clause Theories, volume 16 of EATCS Monographs on Theoretical Computer Science. Springer-Verlag, 1988.
U. S. Reddy. Narrowing as the operational semantics of functional languages. In Proceedings of the IEEE International Symposium on Logic Programming, pages 138–151. IEEE Computer Soc. Press, 1985.
O. Torgersson. Functional logic programming in GCLA. In Proceedings of the 6th Nordic Workshop on Programming Theory. Aarhus, 1994.
D. H. D. Warren. Higher-order extensions to prolog—are they needed? In D. Mitchie, editor, Machine Intelligence 10, pages 441–454. Edinburgh University Press, 1982.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag
About this paper
Cite this paper
Torgersson, O. (1996). A definitional approach to functional logic programming. In: Dyckhoff, R., Herre, H., Schroeder-Heister, P. (eds) Extensions of Logic Programming. ELP 1996. Lecture Notes in Computer Science, vol 1050. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60983-0_19
Download citation
DOI: https://doi.org/10.1007/3-540-60983-0_19
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60983-4
Online ISBN: 978-3-540-49751-6
eBook Packages: Springer Book Archive