Abstract
We present the experimental language BABEL, designed to achieve integration of functional and logic programming in a simple, flexible, and mathematically well founded way. The language relies on a constructor discipline and the use of narrowing to englobe rewriting and SLD-resolution. It is first-order, type-free and has a lazy operational semantics which supports infinite data structures and is sound w.r.t. a declarative semantics based on Scott domains. The paper includes BABEL's syntactical and semantical specification, some mathematical results on the semantics, and programming examples.
That is why it was called Babel, because Yahve confused there all the world's tongues ....
Genesis 11,9
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
De Groot D. and Lindstrom G. (eds.): Logic Programming: Functions, Relations and Equations, Prentice Hall, 1986.
Bellia M. and Levi G.: The Relation between Logic and Functional Languages: A survey, J. Logic Programming 1986, 3, pp. 217–236.
Huet, G. and Open, D.C.: Equations and Rewrite Rules: A Survey, in: "Formal Language Theory: Perspectives and Open Problems", Academic Press, 1980, pp. 349–405.
Fay, M.: First-Order Unification in an Equational Theory, Procs. of the 4th Workshop on Automated Deduction, Austin, Texas (1979), pp. 161–167.
Hullot, J.M.: Canonical Forms and Unification. Procs. of the 5th Conference on Automated Deduction, Springer Verlag, LNCS 87 (1980), pp. 318–334.
Fribourg, L.: SLOG: A logic programming language interpreter based on clausal superposition and rewriting. Procs. Symp. on Logic Programming Boston (1985), pp. 172–184.
Subrahmanyam, P.A. and You, J.: FUNLOG: A computational model integrating logic programming and functional programming. In [1], pp. 157–198.
Goguen, J.A. and Meseguer, J.: EQLOG: Equality, Types and Generic modules for Logic Programming, in [1], pp. 295–363.
Dincbas, M. and van Hentenryck, P.: Extended Unification Algorithms for the Integration of Functional Programming into Logic Programming, J. Logic Programming 1987:4, pp. 199–227.
Levi, G., Bosco, P.G., Giovannetti, E., Moiso, C. and Palamidessi, C.: A complete semantic characterization of K-LEAF, a logic language with partial functions. Procs. 4th Symp. on Logic Programming, San Francisco (1987), pp. 1–27.
Bosco P.G., Giovanetti E. and Moiso C.: Refined Strategies for Semantic Unification, Proc. TAPSOFT'87, LNCS 250, pp. 276–290.
van Emden, M.H. and Yukawa, K.: Logic Programming with Equations, J. Logic Programming 1987:4, pp. 265–288.
O'Donnell, M. J.: Equational Logic as a Programming Language. MIT Press, 1985.
Reddy, U.S.: Narrowing as the Operational Semantics of Functional languages, Proc. 1985 Symp. on Logic Programming, IEEE Comp. Soc. Press, 1895, pp. 138–151.
Lloyd, J. W.: Foundations of Logic Programming, 2nd edition, Springer Verlag, 1987.
Robinson, J.A.: A Machine Oriented Logic Based on the Resolution Principle, J. ACM 12, 1965, pp. 23–41
Malachi, Y. Manna, Z. and Waldinger, R.: TABLOG: A New Approach to Logic Programming, en [1], pp. 365–394.
Dijkstra, E.W.: A Discipline of Programming, Prentice Hall, 1976.
Bird, R. and Wadler, P.: Introduction to Functional Programming. Prentice Hall, 1988, pp. 188–189.
Scott, D.S.: Domains for Denotational Semantics, Proceedings ICALP'82, LNCS 140, Springer Verlag, 1982, pp. 577–613.
Larsen, K.G. and Winskel G.: Using Information Systems to solve Recursive Domain Equations Effectively, LNCS 173, Springer Verlag 1984, pp. 109–129.
Milner, R.: A Theory of Type Polymorphism in Programming, J. Comp. and Syst. Sci. 17, 1978, pp. 348–375.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1988 Akademie-Verlag Berlin
About this paper
Cite this paper
Moreno-Navarro, J.J., Rodríguez-Artalejo, M. (1988). Babel: A functional and logic programming language based on constructor discipline and narrowing. In: Grabowski, J., Lescanne, P., Wechler, W. (eds) Algebraic and Logic Programming. ALP 1988. Lecture Notes in Computer Science, vol 343. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-50667-5_74
Download citation
DOI: https://doi.org/10.1007/3-540-50667-5_74
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-50667-6
Online ISBN: 978-3-540-46063-3
eBook Packages: Springer Book Archive