skip to main content
10.1145/2003476.2003485acmotherconferencesArticle/Chapter ViewAbstractPublication PagesppdpConference Proceedingsconference-collections
research-article

A modular semantics for higher-order declarative programming with constraints

Published:20 July 2011Publication History

ABSTRACT

Modularity is a key issue in the construction of large multi-paradigm declarative programs involving complex features like higher-order, polymorphism or constraints. The modular framework defined in this paper for higher-order declarative constraint programming builds complex software systems by combining and composing existing components or modules from a number of composition operations expressive enough to model typical modularization issues like export/import relationships and inheritance. The effectiveness of our approach relies on a higher-order constraint rewriting logic over a parametrically given constraint domain as the basis of a model-theoretic and fixpoint semantics for program modules, and a modular semantics given by a suitable immediate consequence operator which is compositional and fully abstract, offering the possibility of reasoning on the composition process itself. The availability of this well-founded semantics characterization for structuring and modularizing higher-order declarative constraint programs provides the ground to perform sound semantics-based transformation, analysis, debugging and verification of declarative software.

References

  1. K. R. Apt. Logic programming. In Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics (B), pages 493--574. 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Brogi, P. Mancarella, D. Pedreschi, and F. Turini. Modular logic programming. ACM Trans. Program. Lang. Syst., 16(4):1361--1398, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. A. Brogi and F. Turini. Fully abstract composition semantics for an algebra of logic programs. Theor. Comput. Sci., 149(2):201--209, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. T.-R. Chuang and J.-L. Lin. On modular transformations of structural content. In APLAS, pages 251--263, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. M. Cleva, J. Leach, and F. J. López-Fraguas. A logic programming approach to the verification of functional-logic programs. In PPDP, pages 9--19. ACM, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. L. Damas and R. Milner. Principal type-schemes for functional programs. In POPL, pages 207--212, 198. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. R. del Vado Vírseda. A higher-order demand-driven narrowing calculus with definitional trees. In ICTAC, volume 4711 of Lecture Notes in Computer Science, pages 169--184, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. R. del Vado Vírseda. A higher-order logical framework for the algorithmic debugging and verification of declarative programs. In PPDP, pages 49--60. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. R. del Vado Vírseda. Cooperation of algebraic constraint domains in higher-order functional and logic programming. In AMAST, volume 6486 of Lecture Notes in Computer Science, pages 180--200, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. R. del Vado Vírseda. A Theoretical Framework for the Higher-Order Cooperation of Numeric Constraint Domains. In LSFA, volume 269 of Electr. Notes Theor. Comput. Sci., pages 55--69, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. del Vado Vírseda and I. Castiñeiras. A theoretical framework for the declarative debugging of functional logic programs with lambda abstractions. In WFLP, volume 5979 of Lecture Notes in Computer Science, pages 162--178, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Falaschi, G. Levi, M. Martelli, and C. Palamidessi. A modeltheoretic reconstruction of the operational semantics of logic programs. Inf. Comput., 103(1):86--113, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Fitting. Enumeration operators and modular logic programming. J. Log. Program., 4(1):11--21, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. Giacobazzi. Abductive analysis of modular logic programs. J. Log. Comput., 8(4):457--483, 1998.Google ScholarGoogle ScholarCross RefCross Ref
  15. R. Haemmerlé and F. Fages. Modules for prolog revisited. In ICLP, volume 4079, pages 41--55, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Hanus. A unified computation model for functional and logic programming. In POPL, pages 80--93, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Hanus. Multi-paradigm declarative languages. In ICLP, volume 4670 of Lecture Notes in Computer Science, pages 45--75, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. Hanus and C. Prehofer. Higher-order narrowing with definitional trees. J. Funct. Program., 9(1):33--75, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. Harper, R. Milner, and M. Tofte. A type discipline for program modules. In TAPSOFT, Vol.2, volume 250 of Lecture Notes in Computer Science, pages 308--319, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. R. Harper and F. Pfenning. A module system for a programming language based on the lf logical framework. J. Log. Comput., 8(1):5--31, 1998.Google ScholarGoogle ScholarCross RefCross Ref
  21. P. Hill and J. W. Lloyd. The gödel programming language. In MIT Press, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. J. R. Hindley and J. P. Seldin. Introduction to combinators and λ- calculus. Cambridge University Press, New York, NY, USA, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. D. Kranzlmüller, C. Schaubschläger, M. Scarpa, and J. Volkert. A modular debbuging insfrastructure for parallel programs. In PARCO, volume 13 of Advances in Parallel Computing, pages 143--150. Elsevier, 2003.Google ScholarGoogle Scholar
  24. K. Kwon, G. Nadathur, and D. S. Wilson. Implementing a notion of modules in the logic programming language lambda-prolog. In ELP, volume 660 of Lecture Notes in Computer Science, pages 359--393, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. F. Logozzo. Cibai: An abstract interpretation-based static analyzer for modular analysis and verification of java classes. In VMCAI, volume 4349 of Lecture Notes in Computer Science, pages 283--298, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. F. J. López-Fraguas and J. Sànchez-Hernandez. TOY: A multiparadigm declarative system. In RTA, volume 1631 of Lecture Notes in Computer Science, pages 244--247, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. P. Mancarella and D. Pedreschi. An algebra of logic programs. In ICLP/SLP, pages 1006--1023, 1988.Google ScholarGoogle Scholar
  28. S. E. Martín, M. T. Hortalà-Gonzàlez, M. Rodríguez-Artalejo, R. del Vado Vírseda, F. Sàenz-Pérez, and A. J. Fernàndez. On the cooperation of the constraint domains H, R, and FD in CFLP. TPLP, 9(4):415--527, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. D. Miller. A theory of modules for logic programming. In SLP, pages 106--114, 1986.Google ScholarGoogle Scholar
  30. D. Miller. A logic programming language with lambda-abstraction, function variables, and simple unification. J. Log. Comput., 1(4):497--536, 1991.Google ScholarGoogle ScholarCross RefCross Ref
  31. J. M. Molina-Bravo and E. Pimentel. Modularity in functional-logic programming. In ICLP, pages 183--197, 1997.Google ScholarGoogle Scholar
  32. J. M. Molina-Bravo and E. Pimentel. Composing programs in a rewriting logic for declarative programming. TPLP, 3(2):189--221, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. J. C. G. Moreno, M. T. Hortalà-Gonzàlez, F. J. López-Fraguas, and M. Rodríguez-Artalejo. An approach to declarative programming based on a rewriting logic. J. Log. Program., 40(1):47--87, 1999.Google ScholarGoogle ScholarCross RefCross Ref
  34. J. C. G. Moreno, M. T. Hortalà-Gonzàlez, and M. Rodríguez-Artalejo. A higher order rewriting logic for functional logic programming. In ICLP, pages 153--167, 1997.Google ScholarGoogle Scholar
  35. J. C. G. Moreno, M. T. Hortala-Gonzalez, and M. Rodríguez-Artalejo. Polymorphic types in functional logic programming. Journal of Functional and Logic Programming, 2001(1), 2001.Google ScholarGoogle Scholar
  36. L. C. Paulson. Isabelle - A Generic Theorem Prover (with a contribution by T. Nipkow), volume 828 of Lecture Notes in Computer Science. Springer, 1994.Google ScholarGoogle Scholar
  37. P. Pietrzak, J. Correas, G. Puebla, and M. V. Hermenegildo. A practical type analysis for verification of modular prolog programs. In PEPM, pages 61--70. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. D. Sannella and L. A. Wallen. A calculus for the construction of modular prolog programs. J. Log. Program., 12(1&2):147--177, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A modular semantics for higher-order declarative programming with constraints

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        PPDP '11: Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
        July 2011
        202 pages
        ISBN:9781450307765
        DOI:10.1145/2003476

        Copyright © 2011 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 20 July 2011

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate230of486submissions,47%
      • Article Metrics

        • Downloads (Last 12 months)1
        • Downloads (Last 6 weeks)0

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader