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 2011 Publication 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.
[2]
A. Brogi, P. Mancarella, D. Pedreschi, and F. Turini. Modular logic programming. ACM Trans. Program. Lang. Syst., 16(4):1361--1398, 1994.
[3]
A. Brogi and F. Turini. Fully abstract composition semantics for an algebra of logic programs. Theor. Comput. Sci., 149(2):201--209, 1995.
[4]
T.-R. Chuang and J.-L. Lin. On modular transformations of structural content. In APLAS, pages 251--263, 2001.
[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.
[6]
L. Damas and R. Milner. Principal type-schemes for functional programs. In POPL, pages 207--212, 198.
[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.
[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.
[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.
[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.
[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.
[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.
[13]
M. Fitting. Enumeration operators and modular logic programming. J. Log. Program., 4(1):11--21, 1987.
[14]
R. Giacobazzi. Abductive analysis of modular logic programs. J. Log. Comput., 8(4):457--483, 1998.
[15]
R. Haemmerlé and F. Fages. Modules for prolog revisited. In ICLP, volume 4079, pages 41--55, 2006.
[16]
M. Hanus. A unified computation model for functional and logic programming. In POPL, pages 80--93, 1997.
[17]
M. Hanus. Multi-paradigm declarative languages. In ICLP, volume 4670 of Lecture Notes in Computer Science, pages 45--75, 2007.
[18]
M. Hanus and C. Prehofer. Higher-order narrowing with definitional trees. J. Funct. Program., 9(1):33--75, 1999.
[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.
[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.
[21]
P. Hill and J. W. Lloyd. The gödel programming language. In MIT Press, 1994.
[22]
J. R. Hindley and J. P. Seldin. Introduction to combinators and λ- calculus. Cambridge University Press, New York, NY, USA, 1986.
[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.
[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.
[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.
[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.
[27]
P. Mancarella and D. Pedreschi. An algebra of logic programs. In ICLP/SLP, pages 1006--1023, 1988.
[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.
[29]
D. Miller. A theory of modules for logic programming. In SLP, pages 106--114, 1986.
[30]
D. Miller. A logic programming language with lambda-abstraction, function variables, and simple unification. J. Log. Comput., 1(4):497--536, 1991.
[31]
J. M. Molina-Bravo and E. Pimentel. Modularity in functional-logic programming. In ICLP, pages 183--197, 1997.
[32]
J. M. Molina-Bravo and E. Pimentel. Composing programs in a rewriting logic for declarative programming. TPLP, 3(2):189--221, 2003.
[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.
[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.
[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.
[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.
[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.
[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.

Recommendations

Comments

Information & Contributors

Information

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
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]

Sponsors

  • University of Southern Denmark
  • Danish Agency for Science Technology and Innovation: DASTI

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 July 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. constraints
  2. higher-order declarative programming
  3. lambda calculus
  4. modular semantics
  5. modules

Qualifiers

  • Research-article

Conference

PPDP '11
Sponsor:
  • Danish Agency for Science Technology and Innovation

Acceptance Rates

Overall Acceptance Rate 230 of 486 submissions, 47%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 101
    Total Downloads
  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 03 Mar 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media