PAKCS: The

   

Portland
Aachen
Kiel

Curry System

Description

PAKCS is an implementation of the multi-paradigm declarative language Curry jointly developed by the Portland State University, the Aachen University of Technology, and the University of Kiel. Although this is not a highly optimized implementation but based on a high-level compilation of Curry programs into Prolog programs, it is not a toy implementation but has been used for a variety of applications (e.g., graphical programming environments, an object-oriented front-end for Curry, partial evaluators, database applications, HTML programming with dynamic web pages, prototyping embedded systems). Thus, the size of all current Curry applications implemented with PAKCS amounts to more than 100,000 lines (or 5 mbytes) of program code.

There is a manual (PDF) which describes the use of the system and the minor restrictions of PAKCS compared to Curry. Since this document compares only PAKCS to Curry, you may have a look at the Curry report which describes the full language.

Libraries and tools

The PAKCS distribution comes with a collection of libraries that are useful for application programming. A short description of these libraries can be found here.

The PAKCS distribution also contains various tools for Curry programs, like

Download and test

You can download the PAKCS distribution here. You can also run your Curry program using our interactive WWW interface to the PAKCS environment. Note that there is time limit for the execution of Curry programs and some predefined system functions (like reading/writing files) are not available due to security reasons.

Important note: The current version is almost compatible with the Curry Report Version 0.8.2. The minor restrictions are described in Section 1.2 of the PAKCS User Manual.

This might also of interest for PAKCS users:

  • Typical errors and pitfalls in programming with Curry/PAKCS
  • CIDER: a graphical programming and development environment for Curry
    (note that CIDER is no longer supported since the current distribution of PAKCS includes the tool CurryBrowser which improves CIDER in many respects)
  • COOSy: the Curry Object Observation System, a lightweight approach for debugging Curry programs by observations
  • Spicey: An ER-based Web Framework for Curry

Mirror sites

Europe (home): http://www.informatik.uni-kiel.de/~pakcs/
USA (Portland State University): http://redstar.cs.pdx.edu/~pakcs/


This work has been supported in part by the DAAD/NSF grant INT-9981317, the NSF grants CCR-0110496 and CCR-0218224, and the DFG grants Ha 2457/1-2 and Ha 2457/5-1.