Skip to main content

Theoretical Foundations and Semantics of Logic Programming

  • Chapter
A 25-Year Perspective on Logic Programming

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6125))

Abstract

The paper provides an overview of an approach to the semantics of (constraint) logic programs, whose aim is providing suitable theoretical bases for modeling observable properties of logic programs in a compositional way. The approach is based on the idea of choosing (either equivalence classes or abstractions of) sets of clauses as semantic domain and provides an uniform framework for defining different compositional semantics for logic programs, parametrically with respect to a given notion of observability. Since some observable properties have a natural definition which is dependent on the selection rule, the framework has been adapted to cope also with a suitable class of rules, which includes the leftmost selection rule. This provides a formal description of most of the observable properties of Prolog derivations and can therefore be viewed as reference semantics for Prolog transformation and analysis systems.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Apt, K.R.: Logic programming. In: Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics (B), pp. 493–574 (1990)

    Google Scholar 

  2. Barbuti, R., Codish, M., Giacobazzi, R., Maher, M.J.: Oracle semantics for Prolog. Information and Computation 122(2), 178–200 (1995)

    Article  MATH  MathSciNet  Google Scholar 

  3. Barbuti, R., Giacobazzi, R., Levi, G.: A general framework for semantics-based bottom-up abstract interpretation of logic programs. ACM Transactions on Programming Languages and Systems (TOPLAS) 15(1), 133–181 (1993)

    Article  Google Scholar 

  4. Bol, R.N., Apt, K.R., Klop, J.W.: An analysis of loop checking mechanisms for logic programs. Theor. Comput. Sci. 86(1), 35–79 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  5. Bossi, A., Bugliesi, M., Fabris, M.: A new fixpoint semantics for Prolog. In: ICLP 1993: Proceedings of the Tenth Int’l Conference on Logic Programming, pp. 374–389. MIT Press, Cambridge (1993)

    Google Scholar 

  6. Bossi, A., Bugliesi, M., Gabbrielli, M., Levi, G., Meo, M.C.: Differential logic programming. In: POPL 1993: Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 359–370 (1993)

    Google Scholar 

  7. Bossi, A., Gabbrielli, M., Levi, G., Martelli, M.: The s-semantics approach: theory and applications. Journal of Logic Programming 19(20), 149–197 (1994)

    Article  MathSciNet  Google Scholar 

  8. Bossi, A., Gabbrielli, M., Levi, G., Meo, M.C.: A compositional semantics for logic programs. Theoretical Computer Science 122(1-2), 3–47 (1994)

    Article  MATH  MathSciNet  Google Scholar 

  9. Bossi, A., Menegus, M.: Una semantica composizionale per programmi logici aperti. In: Sesto convegno sulla programmazione logica, pp. 95–109 (1991)

    Google Scholar 

  10. Bruynooghe, M.: A practical framework for the abstract interpretation of logic programs. Journal of Logic Programming 10(2), 91–124 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  11. Codish, M., Dams, D., Yardeni, E.: Bottom-up abstract interpretation of logic programs. Theoretical Computer Science 124(1), 93–125 (1994)

    Article  MATH  MathSciNet  Google Scholar 

  12. Codish, M., Søndergaard, H.: Meta-circular abstract interpretation in Prolog, pp. 109–134 (2002)

    Google Scholar 

  13. Comini, M., Levi, G.: An algebraic theory of observables. In: SLP, pp. 172–186 (1994)

    Google Scholar 

  14. Comini, M., Levi, G., Meo, M.C.: Compositionality in sld-derivations and their abstractions. In: ILPS, pp. 561–575 (1995)

    Google Scholar 

  15. Comini, M., Levi, G., Meo, M.C., Vitiello, G.: Proving properties of logic programs by abstract diagnosis. In: Dam, M. (ed.) LOMAPS-WS 1996. LNCS, vol. 1192, pp. 22–50. Springer, Heidelberg (1997)

    Google Scholar 

  16. Comini, M., Levi, G., Meo, M.C., Vitiello, G.: Abstract diagnosis. Journal of Logic Programming 39(1-3), 43–93 (1999)

    Article  MATH  MathSciNet  Google Scholar 

  17. Comini, M., Levi, G., Vitiello, G.: Abstract debugging of logic program. In: Fribourg, L., Turini, F. (eds.) LOPSTR 1994 and META 1994. LNCS, vol. 883, pp. 440–450. Springer, Heidelberg (1994)

    Google Scholar 

  18. Cousot, P.: Program analysis: the abstract interpretation perspective. ACM Computing Surveys 28(4es), 165 (1996)

    Article  Google Scholar 

  19. Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: POPL, pp. 238–252 (1977)

    Google Scholar 

  20. Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: POPL, pp. 269–282 (1979)

    Google Scholar 

  21. García de la Banda, M.J., Hermenegildo, M.V., Marriott, K.: Independence in constraint logic programs. In: ILPS, pp. 130–146 (1993)

    Google Scholar 

  22. Debray, S.K.: Formal bases for dataflow analysis of logic programs, pp. 115–182 (1994)

    Google Scholar 

  23. Van Emden, M.H., Kowalski, R.A.: The semantics of predicate logic as a programming language. Journal of the ACM 23(4), 733–742 (1976)

    Article  MATH  Google Scholar 

  24. Etalle, S., Gabbrielli, M.: Transformations of clp modules. Theor. Comput. Sci. 166(1&2), 101–146 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  25. Falaschi, M., Levi, G.: Finite failures and partial computations in concurrent logic languages. Theor. Comput. Sci. 75(1&2), 45–66 (1990)

    Article  MATH  MathSciNet  Google Scholar 

  26. Falaschi, M., Levi, G., Martelli, M., Palamidessi, C.: Declarative Modeling of the Operational Behaviour of Logic Languages. Theoretical Computer Science 69, 289–318 (1989)

    Article  MATH  MathSciNet  Google Scholar 

  27. Ferrand, G.: Error diagnosis in logic programming, an adaptation of E.Y. Shapiro’s method. Journal of Logic Programming 4(3), 177–198 (1987)

    Article  MATH  MathSciNet  Google Scholar 

  28. Gabbrielli, M., Dore, G.M., Levi, G.: Observable semantics for constraint logic programs. J. Log. Comput. 5(2), 133–171 (1995)

    Article  MATH  MathSciNet  Google Scholar 

  29. Gabbrielli, M., Giacobazzi, R.: Goal independency and call patterns in the analysis of logic programs. In: SAC, pp. 394–399 (1994)

    Google Scholar 

  30. Gabbrielli, M., Levi, G., Meo, M.C.: Observational equivalences for logic programs. In: Proceedings of the Joint Int’l Conference and Symposium on Logic Programming, pp. 131–145 (1992)

    Google Scholar 

  31. Gabbrielli, M., Levi, G., Meo, M.C.: Observable behaviors and equivalences of logic programs. Inf. Comput. 122(1), 1–29 (1995)

    Article  MATH  MathSciNet  Google Scholar 

  32. Gabbrielli, M., Levi, G., Meo, M.C.: Resultants semantics for prolog. J. Log. Comput. 6(4), 491–521 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  33. Gabbrielli, M., Meo, M.C.: Fixpoint semantics for partial computed answer substitutions and call patterns. In: Kirchner, H., Levi, G. (eds.) ALP 1992. LNCS, vol. 632, pp. 84–99. Springer, Heidelberg (1992)

    Chapter  Google Scholar 

  34. Gaifman, H., Shapiro, E.: Fully abstract compositional semantics for logic programs. In: POPL 1989: Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 134–142. ACM Press, New York (1989)

    Chapter  Google Scholar 

  35. Gaifman, H., Shapiro, E.: Proof theory and semantics of logic programs. In: Proceedings of the Fourth Annual Symposium on Logic in computer science, pp. 50–62. IEEE Press, Los Alamitos (1989)

    Chapter  Google Scholar 

  36. Giacobazzi, R., Debray, S.K., Levi, G.: A generalized semantics for constraint logic programs. In: Proceedings of the Int’l Conference on Fifth Generation Computer Systems, pp. 581–591. ACM Press, New York (1992)

    Google Scholar 

  37. Jaffar, J., Lassez, J.-L.: Constraint logic programming. Technical report, Department of Computer Science, Monash University (June 1986)

    Google Scholar 

  38. Jaffar, J., Lassez, J.-L.: Constraint logic programming. In: POPL, pp. 111–119 (1987)

    Google Scholar 

  39. Janssens, G., Bruynooghe, M.: Deriving descriptions of possible values of program variables by means of abstract interpretation. Journal of Logic Programming 13(2-3), 205–258 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  40. Kawamura, T., Kanamori, T.: Preservation of stronger equivalence in unfold/fold logic program transformation. Theor. Comput. Sci. 75(1&2), 139–156 (1990)

    Article  MATH  MathSciNet  Google Scholar 

  41. Komorowski, H.J.: A specification of an Abstract Prolog Machine and Its Applications to Partial Evaluation. Phd thesis, Linkõping University (1981)

    Google Scholar 

  42. Levi, G.: Models, unfolding rules and fixpoint semantics. In: Proc. of the Fifth Int’l Conference and Symposium on Logic Programming, vol. 2, pp. 1649–1665. MIT Press, Cambridge (1991)

    Google Scholar 

  43. Lloyd, J.W.: Foundations of logic programming. Springer, New York (1984)

    Google Scholar 

  44. Lloyd, J.W., Shepherdson, J.C.: Partial evaluation in logic programming. J. Log. Program. 11(3&4), 217–242 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  45. Maher, M.J.: Equivalences of logic programs. In: Foundations of Deductive Databases and Logic Programming, pp. 627–658 (1988)

    Google Scholar 

  46. Marriott, K., Søndergaard, H.: Bottom-up abstract interpretation of logic programs. In: Proc. Fifth Int’l Conf. on Logic Programming, pp. 733–748. MIT Press, Cambridge (1988)

    Google Scholar 

  47. Marriott, K., Søndergaard, H.: Semantics-based dataflow analysis of logic programs. In: IFIP Congress, pp. 601–606. North-Holland, Amsterdam (1989)

    Google Scholar 

  48. Marriott, K., Søndergaard, H.: Precise and efficient groundness analysis for logic programs. LOPLAS 2(1-4), 181–196 (1993)

    Article  Google Scholar 

  49. Sato, T., Tamaki, H.: Enumeration of success patterns in logic programs. Theor. Comput. Sci. 34, 227–240 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  50. Scozzari, F.: Logical optimality of groundness analysis. Theor. Comput. Sci. 277(1-2), 149–184 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  51. Shapiro, E.Y.: Algorithmic Program Debugging. MIT Press, Cambridge (1983)

    Google Scholar 

  52. Tamaki, H., Sato, T.: Unfold/fold transformation of logic programs. In: ICLP, pp. 127–138 (1984)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Bossi, A., Meo, M.C. (2010). Theoretical Foundations and Semantics of Logic Programming. In: Dovier, A., Pontelli, E. (eds) A 25-Year Perspective on Logic Programming. Lecture Notes in Computer Science, vol 6125. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-14309-0_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-14309-0_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-14308-3

  • Online ISBN: 978-3-642-14309-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics