Abstract
Declarative multi-paradigm languages combine the main features of functional and logic programming, like laziness, logic variables and non-determinism. The operational semantics of these languages is based on a combination of narrowing and residuation. In this article, we introduce a non-standard memoizing semantics for multi-paradigm declarative programs and prove its equivalence with the standard operational semantics. Both pure functional and pure logic programming have for long time taken advantage of tabling or memoizing schemes [15,19,7], which motivates the interest in the adapation of this technique to the integrated paradigm.
Chapter PDF
Similar content being viewed by others
References
Albert, E., Vidal, G.: The Narrowing-Driven Approach to Functional Logic Program Specialization. New Generation Computing 20(1), 3–26 (2002)
Alpuente, M., Correa, F.J., Falaschi, M.: Debugging Scheme of Functional Logic Programs. In: Hanus, M. (ed.) Proc. of International Workshop on Functional and (Constraint) Logic Programming, WFLP 2001. Electronic Notes in Theoretical Computer Science, vol. 64. Elsevier Science Publishers, Amsterdam (2002)
Antoy, S.: Definitional Trees. In: Kirchner, H., Levi, G. (eds.) ALP 1992. LNCS, vol. 632, pp. 143–157. Springer, Heidelberg (1992)
Antoy, S., Ariola, Z.M.: Narrowing the narrowing space. In: Hartel, P.H., Kuchen, H. (eds.) PLILP 1997. LNCS, vol. 1292, pp. 1–15. Springer, Heidelberg (1997)
Antoy, S., Echahed, R., Hanus, M.: A Needed Narrowing Strategy. Journal of the ACM (J. ACM) 47, 776–822 (2000)
Barklund, J.: Tabulation of Functions in Definite Clause Programs. In: Penjam, J. (ed.) PLILP 1994. LNCS, vol. 844, pp. 465–466. Springer, Heidelberg (1994)
Chen, W., Warren, D.S.: Tabled Evaluation with Delaying for General Logic Programs. Journal of the ACM 43(1), 20–74 (1996)
Cook, B., Launchbury, J.: Disposable Memo Functions. ACM SIGPLAN Notices 32(8), 310–318 (1997)
Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introduction to Algorithms. MIT Press, Cambridge (1992)
Hanus, M.: Curry: An Integrated Functional Logic Language (2000), Available at: http://www.informatik.uni-kiel.de/~mh/curry
Hanus, M.: The Integration of Functions into Logic Programming: From Theory to Practice. Journal of Logic Programming 19&20, 583–628 (1994)
Hanus, M.: A Unified Computation Model for Functional and Logic Programming. In: Proc. 24st ACM Symposium on Principles of Programming Languages (POPL 1997), pp. 80–93 (1997)
Hanus, M., Prehofer, C.: Higher-Order Narrowing with Definitional Trees. Journal of Functional Programming 9(1), 33–75 (1999)
Hortalá-González, T., Ullán, E.: An abstract machine based system for a lazy narrowing calculus. In: Kuchen, H., Ueda, K. (eds.) FLOPS 2001. LNCS, vol. 2024, pp. 216–232. Springer, Heidelberg (2001)
Hughes, J.: Lazy memo-functions. In: Jouannaud, J.-P. (ed.) FPCA 1985. LNCS, vol. 201, pp. 129–146. Springer, Heidelberg (1985)
Leuschel, M., Mertens, B., Sagonas, K.: Preserving termination of tabled logic programs while unfolding. In: Fuchs, N.E. (ed.) LOPSTR 1997. LNCS, vol. 1463, pp. 189–205. Springer, Heidelberg (1998)
Lux, W., Kuchen, H.: An Efficient Abstract Machine for Curry. In: Proc. of the 8th Int’l Workshop on Functional and Logic Programming (WFLP 1999), pp. 171–181 (1999)
Ramakrishnan, V., Rao, P., Sagonas, K.F., Swift, T., Warren, D.S.: Efficient access mechanisms for tabled logic programs. Journal of Logic Programming 38(1), 31–54 (1999)
Tamaki, H., Sato, T.: Old Resolution with Tabulation. In: Shapiro, E. (ed.) ICLP 1986. LNCS, vol. 225, pp. 84–98. Springer, Heidelberg (1986)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
España, S., Estruch, V. (2004). A Memoizing Semantics for Functional Logic Languages. In: Schmidt, D. (eds) Programming Languages and Systems. ESOP 2004. Lecture Notes in Computer Science, vol 2986. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24725-8_9
Download citation
DOI: https://doi.org/10.1007/978-3-540-24725-8_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-21313-0
Online ISBN: 978-3-540-24725-8
eBook Packages: Springer Book Archive