Curry Web Apps: A Collection of Web Demos of Curry Tools

There exists various tools to analyze Curry programs. Usually, these tools are distributed as Curry Packages for easy installation on a local machine. In order to allow testing some of these tools on simple programs without installing them locally, there are web demos of some of these tools. These are listed below together with a reference to the corresponding web app.

  • CASS Web Demo: CASS (Curry Analysis Server System) is a tool for the analysis of Curry programs. CASS is generic so that various kinds of analyses (e.g., groundness, non-determinism, demanded arguments) can be easily integrated into CASS. This web demo allows to apply CASS and various analyses to simple programs via a web interface.
  • Contract Prover Web Demo: The Curry Contract Prover is a tool to verify and add contracts in FlatCurry programs by proving contracts with an SMT solver. If a proof is successful, no contract check will be performed at run time, otherwise a dynamic (strict) contract check will be added. This web demo allows to apply the Curry Contract Prover to simple programs via a web interface.
  • Fail-Free Verifier Web Demo: The Curry Fail-Free Verifier is a tool to verify that all operations in a given Curry module are non-failing, i.e., their evaluation does not result in a failure, if they are called with appropriate arguments. The tool automatically infers abstract call types and non-fail conditions specifying supersets of appropriate arguments. This web demo allows to apply the Curry Fail-Free Verifier to simple programs via a web interface.
  • Prolog2Curry Translator Web Demo: The Prolog2Curry Translator is a tool to transform Prolog programs to Curry programs. The idea of this tool is to demonstrate the advantages of functional logic languages compared to purely logic languages. Thus, the tool translates only pure logic programs (without side effecting predicates etc). This web demo allows to apply the Prolog2Curry Translator to simple programs via a web interface.