Skip to main content

Logic programming within a functional framework

  • Integration Of Logic Programming And Functional Programming
  • Conference paper
  • First Online:
Book cover Programming Language Implementation and Logic Programming (PLILP 1990)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 456))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

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.

    Google Scholar 

  • Augustsson,L. and Johnsson,T. “Lazy ML User's Manual”. Programming Methodology Group, Department of Computer Sciences, University of Göteborg (1987).

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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).

    Google Scholar 

  • Bird, R. and Wadler, P. Introduction to Functional Programming, (Prentice Hall, 1988).

    Google Scholar 

  • Cardelli, L. “Basic Polymorphic Typechecking”, in: Polymorphism, vol. II,1 (1985).

    Google Scholar 

  • Clark, K.L. “Negation as Failure”, in: H. Gallaire and J. Minker (eds.), Logic and Data Bases, (Plenum Press, New York, 1978), 292–322.

    Google Scholar 

  • 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).

    Google Scholar 

  • Gallaire, H. “Boosting Logic Programming”, in: Proc. Fourth Int. Conf. on Logic Programming, Melbourne, Australia (1987) 962–988.

    Google Scholar 

  • Henderson, P. Functional Programming: Application and Implementation, (Prentice Hall, 1980).

    Google Scholar 

  • Hughes, J. “Why Functional Programming Matters”, The Computer Journal, Vol. 32, 2 (special issue on Lazy Funct. Progr., 1989) 98–107

    Google Scholar 

  • Kowalski, R.A. Logic for Problem Solving (Elsevier North Holland, New York, 1979).

    Google Scholar 

  • Kowalski,R.A. “Logic Programming”, in: Proc. IFIP'83 (North Holland, 1983) 133–145.

    Google Scholar 

  • Lloyd, J.W., Foundations of Logic Programming (Springer Symbolic Computation Series, Berlin, 1987).

    Google Scholar 

  • Lloyd, J.W. and Topor, R.W. “A Basis for Deductive Data Base Systems”, Journal of Logic Programming, Vol. 2, 2 (1985) 93–103.

    Google Scholar 

  • Lloyd, J.W. and Topor, R.W. “A Basis for Deductive Data Base Systems II”, Journal of Logic Programming, Vol. 1 (1986) 55–67.

    Google Scholar 

  • Mancarella, P. Intensional Negation of Logic Programs. Ph.D. Thesis, University of Pisa (in Italian) (1988).

    Google Scholar 

  • 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.

    Google Scholar 

  • Mancarella, P., Martini, S. and Pedreschi, D. “Complete Logic Programs with Domain Closure Axiom”. Journal of Logic Programming 5, 3 (1988a) 263–276.

    Google Scholar 

  • 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.

    Google Scholar 

  • Milner, R. “A proposal for Standard ML”, in: Proc. of 1984 ACM Symp. on LISP and Functional Programming (1985) 184–197.

    Google Scholar 

  • Pedreschi, D. Logic Programming: Compositional Semantics, Algebraic Structures and Complete Programs. Ph.D.Thesis, University of Pisa (in Italian) (1988)..

    Google Scholar 

  • Richards, H. “The pragmatics of SASL for programming applications”, Technical Report ARC 82-15, Austin Research Center, Burroughs Corporation (1982).

    Google Scholar 

  • Robinson, J.A. and Sibert, E.E. “LOGLISP: an alternative to Prolog”, in Machine Intelligence 10, (1982).

    Google Scholar 

  • 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)

    Google Scholar 

  • Turner, D.A. “The Semantic Elegance of Applicative Languages”, Proc. 81 Conf. on Functional Programming Languages and Computer Architecture, Portsmouth (1981) 85–92.

    Google Scholar 

  • 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Pierre Deransart Jan Maluszyński

Rights and permissions

Reprints 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

Publish with us

Policies and ethics