Abstract
The functional programming language LML (for Logical Meta-Language) is presented. Like most trendy representatives of its category, LML is a higher-order, pattern-matched, polymorphically-typed, non-strict functional language. Its distinctive feature is the presence of a data type of theories, whose objects represent logic programs. Theories are equipped with operators for querying them, to obtain sets of answers, and combining them together in various different ways, to build more complex ones. Thus, from one perspective, LML may be viewed as yet another approach to the integration of functional and logic programming, aiming at amalgamating within a single, coherent framework the expressive power of both paradigms. From another perspective, however, LML may be viewed as a programming language for the construction of knowledge-based systems, in which chunks of knowledge are represented as logic theories. According to this perspective, the functional layer acts as a meta-level framework for the underlying logic programming component: theories are ordinary data values, which can be manipulated by suitable operators. The operators map theories into theories by acting upon their representations according to given formal semantics. This is the most novel aspect of the language, and provides mechanisms for a) the description of dynamic evolution of theories, and b) a modular approach to knowledge-based systems development. The paper presents the basic ideas underlying the design of the language, together with anexample of its use.
This work has been partially supported by ESPRIT — Basic Research Action 3012 (Compulog)
The work of this author has been partially supported by C.N.R. — Italian National Research Council.
Preview
Unable to display preview. Download preview PDF.
References
Apt, K.R. and vanEmden, M.H. “Contributions to the Theory of Logic Programming”. Journal of the ACM, 29,3 (1982) 841–862.
Augustsson,L. and Johnsson,T. “Lazy ML User's Manual”. Programming Methodology Group, Department of Computer Sciences, University of Göteborg (1987).
Barbuti, R., Mancarella, P., Pedreschi, D. and Turini, F. “Intensional Negation of Logic Programs: examples and implementation techniques”, in: Proc. TAPSOFT '87, LNCS 250, (Springer Verlag, Berlin, 1987) 96–110.
Barbuti, R., Mancarella, P., Pedreschi, D. and Turini, F. “A Transformational Approach to Negation in Logic Programming”, Journal of Logic Programming, 8, (1990), 201–228.
Bertolino, B., Mancarella, P., Meo, L., Nini, L., Pedreschi, D. and Turini, F., “A progress report on the LML project”, Proc. FGCS'88 Fifth Generation Computer Systems Conf., Tokio (1988).
Bird, R. and Wadler, P. Introduction to Functional Programming, (Prentice Hall, 1988).
Cardelli, L. “Basic Polymorphic Typechecking”, in: Polymorphism, vol. II,1 (1985).
Clark, K.L. “Negation as Failure”, in: H. Gallaire and J. Minker (eds.), Logic and Data Bases, (Plenum Press, New York, 1978), 292–322.
Darlington,J., Field,A.J. and Pull, H. “The unification of Functional and Logic languages”, in Logic Programming: Functions, Relations and Equations, (Prentice Hall, 1985).
Gallaire, H. “Boosting Logic Programming”, in: Proc. Fourth Int. Conf. on Logic Programming, Melbourne, Australia (1987) 962–988.
Henderson, P. Functional Programming: Application and Implementation, (Prentice Hall, 1980).
Hughes, J. “Why Functional Programming Matters”, The Computer Journal, Vol. 32, 2 (special issue on Lazy Funct. Progr., 1989) 98–107
Kowalski, R.A. Logic for Problem Solving (Elsevier North Holland, New York, 1979).
Kowalski,R.A. “Logic Programming”, in: Proc. IFIP'83 (North Holland, 1983) 133–145.
Lloyd, J.W., Foundations of Logic Programming (Springer Symbolic Computation Series, Berlin, 1987).
Lloyd, J.W. and Topor, R.W. “A Basis for Deductive Data Base Systems”, Journal of Logic Programming, Vol. 2, 2 (1985) 93–103.
Lloyd, J.W. and Topor, R.W. “A Basis for Deductive Data Base Systems II”, Journal of Logic Programming, Vol. 1 (1986) 55–67.
Mancarella, P. Intensional Negation of Logic Programs. Ph.D. Thesis, University of Pisa (in Italian) (1988).
Mancarella,P. and D. Pedreschi. “An algebra of Logic Programs”. in Proc. of Fifth Int. Conference and Symposium on Logic Programming, Seattle (1988) 1006–1023.
Mancarella, P., Martini, S. and Pedreschi, D. “Complete Logic Programs with Domain Closure Axiom”. Journal of Logic Programming 5, 3 (1988a) 263–276.
Mancarella, P., Pedreschi, D. and Turini, F. “Functional Metalevel for Logic Programming”, in: D. Nardi and P. Maes (eds.), Meta-Level Architectures and Reflections, (North-Holland, Amsterdam, 1988b) 329–344.
Milner, R. “A proposal for Standard ML”, in: Proc. of 1984 ACM Symp. on LISP and Functional Programming (1985) 184–197.
Pedreschi, D. Logic Programming: Compositional Semantics, Algebraic Structures and Complete Programs. Ph.D.Thesis, University of Pisa (in Italian) (1988)..
Richards, H. “The pragmatics of SASL for programming applications”, Technical Report ARC 82-15, Austin Research Center, Burroughs Corporation (1982).
Robinson, J.A. and Sibert, E.E. “LOGLISP: an alternative to Prolog”, in Machine Intelligence 10, (1982).
Shepherdson, J.C. “Negation as Failure: a Comparison of Clark's Completed Data Base and Reiter's Closed World Assumption”, Journal of Logic Programming, Vol. 1,1 (1985)
Turner, D.A. “The Semantic Elegance of Applicative Languages”, Proc. 81 Conf. on Functional Programming Languages and Computer Architecture, Portsmouth (1981) 85–92.
Turner, D.A. “Miranda: a non-strict functional language with polymorphic types”, Proc. IFIP 85 Conf. on Functional Programming Languages and Computer Architecture, Nancy, LNCS 201, (Springer Verlag, 1985) 1–16.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1990 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Brogi, A., Mancarella, P., Pedreschi, D., Turini, F. (1990). Logic programming within a functional framework. In: Deransart, P., Maluszyński, J. (eds) Programming Language Implementation and Logic Programming. PLILP 1990. Lecture Notes in Computer Science, vol 456. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0024196
Download citation
DOI: https://doi.org/10.1007/BFb0024196
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-53010-7
Online ISBN: 978-3-540-46298-9
eBook Packages: Springer Book Archive