Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2543728.2543744acmconferencesArticle/Chapter ViewAbstractPublication PagespepmConference Proceedingsconference-collections
research-article

A modular and generic analysis server system for functional logic programs

Published: 11 January 2014 Publication History

Abstract

We present the design, implementation, and application of a system, called CASS, for the analysis of functional logic programs. The system is generic so that various kinds of analyses (e.g., groundness, non-determinism, demanded arguments) can be easily integrated. In order to analyze larger applications consisting of dozens or hundreds of modules, CASS supports a modular and incremental analysis of programs. Moreover, it can be used by different programming tools, like documentation generators, analysis environments, program optimizers, as well as Eclipse-based development environments. For this purpose, CASS can also be invoked as a server system to get a language-independent access to its functionality. CASS is completely implemented in the functional logic language Curry as a master/worker architecture to exploit parallel or distributed execution environments.

References

[1]
E. Albert, M. Hanus, F. Huch, J. Oliver, and G. Vidal. Operational semantics for declarative multi-paradigm languages. Journal of Symbolic Computation, 40 (1): 795--829, 2005.
[2]
S. Antoy. Definitional trees. In Proc. of the 3rd International Conference on Algebraic and Logic Programming, pages 143--157. Springer LNCS 632, 1992.
[3]
S. Antoy. Constructor-based conditional narrowing. In Proc. of the 3rd International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming (PPDP 2001), pages 199--206. ACM Press, 2001.
[4]
S. Antoy and M. Hanus. Declarative programming with function patterns. In Proceedings of the International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR'05), pages 6--22. Springer LNCS 3901, 2005.
[5]
S. Antoy and M. Hanus. Functional logic programming. Communications of the ACM, 53 (4): 74--85, 2010. http://dx.doi.org/10.1145/1721654.1721675.
[6]
S. Antoy, R. Echahed, and M. Hanus. A needed narrowing strategy. Journal of the ACM, 47 (4): 776--822, 2000. http://dx.doi.org/10.1145/347476.347484.
[7]
B. Braßel and M. Hanus. Nondeterminism analysis of functional logic programs. In Proceedings of the International Conference on Logic Programming (ICLP 2005), pages 265--279. Springer LNCS 3668, 2005.
[8]
B. Braßel, M. Hanus, B. Peemöller, and F. Reck. KiCS2: A new compiler from Curry to Haskell. In Proc. of the 20th International Workshop on Functional and (Constraint) Logic Programming (WFLP 2011), pages 1--18. Springer LNCS 6816, 2011. http://dx.doi.org/10.1007/978--3--642--22531--4_1.
[9]
P. Cousot. Types as abstract interpretations. In Proc. of the 24th ACM Symposium on Principles of Programming Languages (Paris), pages 316--331, 1997.
[10]
P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximation of fixpoints. In Proc. of the 4th ACM Symposium on Principles of Programming Languages, pages 238--252, 1977.
[11]
J. González-Moreno, M. Hortalá-González, F. López-Fraguas, and M. Rodrıguez-Artalejo. An approach to declarative programming based on a rewriting logic. Journal of Logic Programming, 40: 47--87, 1999.
[12]
M. Hanus. A unified computation model for functional and logic programming. In Proc. of the 24th ACM Symposium on Principles of Programming Languages (Paris), pages 80--93, 1997. http://dx.doi.org/10.1145/263699.263710.
[13]
M. Hanus. CurryDoc: A documentation tool for declarative programs. In Proc. 11th International Workshop on Functional and (Constraint) Logic Programming (WFLP 2002), pages 225--228. Research Report UDMI/18/2002/RR, University of Udine, 2002.
[14]
M. Hanus. CurryBrowser: A generic analysis environment for Curry programs. In Proc. of the 16th Workshop on Logic-based Methods in Programming Environments (WLPE'06), pages 61--74, 2006.
[15]
M. Hanus. Improving lazy non-deterministic computations by demand analysis. In Technical Communications of the 28th International Conference on Logic Programming, volume 17, pages 130--143. Leibniz International Proceedings in Informatics (LIPIcs), 2012. http://dx.doi.org/10.4230/LIPIcs.ICLP.2012.130.
[16]
M. Hanus. Functional logic programming: From theory to Curry. In Programming Logics - Essays in Memory of Harald Ganzinger, pages 123--168. Springer LNCS 7797, 2013.
[17]
M. Hanus and J. Koj. CIDER: An integrated development environment for Curry. In Proc. of the International Workshop on Functional and (Constraint) Logic Programming (WFLP 2001), pages 369--373. Report No. 2017, University of Kiel, 2001.
[18]
M. Hanus and S. Koschnicke. An ER-based framework for declarative web programming. In Proc. of the 12th International Symposium on Practical Aspects of Declarative Languages (PADL 2010), pages 201--216. Springer LNCS 5937, 2010. http://dx.doi.org/10.1007/978-3-642-11503-5_18.
[19]
M. Hanus, S. Antoy, B. Braßel, M. Engelke, K. Höppner, J. Koj, P. Niederau, R. Sadre, and F. Steiner. PAKCS: The Portland Aachen Kiel Curry System. Available at http://www.informatik.uni-kiel.de/pakcs/, 2013.
[20]
M. Hanus (ed.). Curry: An integrated functional logic language (vers. 0.8.3). Available at http://www.curry-language.org, 2012.
[21]
M. Hermenegildo, G. Puebla, F. Bueno, and P. López-Garcıa. Integrated program debugging, verification, and optimization using abstract interpretation (and the ciao system preprocessor). Science of Computer Programming, 58 (1--2): 115--140, 2005.
[22]
M. Hermenegildo, F. Bueno, M. Carro, P. López-Garcıa, E. Mera, J. Morales, and G. Puebla. An overview of Ciao and its design philosophy. Theory and Practice of Logic Programming, 12 (1--2): 219--252, 2012.
[23]
N. Jones and A. Mycroft. Data flow analysis of applicative programs using minimal function graphs. In Proc. 13th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pages 296--306, 1986.
[24]
F. López-Fraguas and J. Sánchez-Hernández. TOY: A multiparadigm declarative system. In Proc. of RTA'99, pages 244--247. Springer LNCS 1631, 1999.
[25]
A. Mycroft. The theory and practice of transforming call-by-need into call-by-value. In Proc. International Symposium on Programming, pages 269--281. Springer LNCS 83, 1980.
[26]
M. Palkus. An Eclipse-based integrated development environment for Curry. Master's thesis, Christian-Albrechts-Universität zu Kiel, 2012.
[27]
S. Peyton Jones, editor. Haskell 98 Language and Libraries--The Revised Report. Cambridge University Press, 2003.
[28]
N. Ramsey, J. Dias, and S. Peyton Jones. Hoopl: a modular, reusable library for dataflow analysis and transformation. In Proceedings of the 3rd ACM SIGPLAN Symposium on Haskell (Haskell 2010), pages 121--134. ACM Press, 2010. http://doi.acm.org/10.1145/1863523.1863539.
[29]
J. Reynolds. Definitional interpreters for higher-order programming languages. In Proceedings of the ACM Annual Conference, pages 717--740. ACM Press, 1972.
[30]
Z. Somogyi, F. Henderson, and T. Conway. The execution algorithm of Mercury, an efficient purely declarative logic programming language. Journal of Logic Programming, 29 (1--3): 17--64, 1996.
[31]
D. Warren. Higher-order extensions to Prolog: are they needed? In Machine Intelligence 10, pages 441--454, 1982.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PEPM '14: Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
January 2014
202 pages
ISBN:9781450326193
DOI:10.1145/2543728
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

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 January 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. functional logic programming languages
  2. implementation
  3. program analysis

Qualifiers

  • Research-article

Conference

POPL '14
Sponsor:

Acceptance Rates

PEPM '14 Paper Acceptance Rate 17 of 22 submissions, 77%;
Overall Acceptance Rate 66 of 120 submissions, 55%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Inferring Non-failure Conditions for Declarative ProgramsFunctional and Logic Programming10.1007/978-981-97-2300-3_10(167-187)Online publication date: 15-May-2024
  • (2024)Improving Logic Programs by Adding FunctionsLogic-Based Program Synthesis and Transformation10.1007/978-3-031-71294-4_2(27-44)Online publication date: 9-Sep-2024
  • (2020)ICurryDeclarative Programming and Knowledge Management10.1007/978-3-030-46714-2_18(286-307)Online publication date: 5-May-2020
  • (2018)Combining Static and Dynamic Contract Checking for CurryLogic-Based Program Synthesis and Transformation10.1007/978-3-319-94460-9_19(323-340)Online publication date: 10-Jul-2018
  • (2018)Equivalence Checking of Non-deterministic OperationsFunctional and Logic Programming10.1007/978-3-319-90686-7_10(149-165)Online publication date: 24-Apr-2018
  • (2018)Improving Residuation in Declarative ProgramsPractical Aspects of Declarative Languages10.1007/978-3-030-05998-9_6(82-97)Online publication date: 19-Dec-2018
  • (2017)SootKeeper: runtime reusability for modular static analysisProceedings of the 6th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis10.1145/3088515.3088518(19-24)Online publication date: 18-Jun-2017
  • (2016)Transforming Boolean equalities into constraintsFormal Aspects of Computing10.1007/s00165-016-0399-629:3(475-494)Online publication date: 24-Oct-2016
  • (2016)Eliminating Irrelevant Non-determinism in Functional Logic ProgramsPractical Aspects of Declarative Languages10.1007/978-3-319-51676-9_1(1-18)Online publication date: 17-Dec-2016
  • (2015)From Boolean Equalities to ConstraintsRevised Selected Papers of the 25th International Symposium on Logic-Based Program Synthesis and Transformation - Volume 952710.1007/978-3-319-27436-2_5(73-88)Online publication date: 13-Jul-2015

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media