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: PAKCS 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). The size of all current Curry applications implemented with PAKCS amounts to more than 150,000 lines (or 8 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.
The PAKCS distribution comes with a collection of base libraries that are useful for basic application programming. A short description of these libraries can be found here.
In addition to these system libraries,
the recent distribution contains also the
Curry Package Manager
CPM
which supports the easy installation of further libraries and tools.
There are
more than 130 packages available
(use the list
or search
command of CPM to browse
through the current set of packages).
Some of the tools, which can be installed via CPM, are described in
the PAKCS User Manual.
Thus, if you install PAKCS, you have easy access to
You can download the PAKCS distribution here. Alternatively, you can also run your Curry program using Smap, a web-based interactive environment to execute Curry programs with PAKCS (and other systems). 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.9.0. The minor restrictions are described in Section 1.2 of the PAKCS User Manual.
This might also of interest for PAKCS users:
Europe (home):
https://www.curry-lang.org/pakcs/
USA (Portland State University):
https://mirrors.cat.pdx.edu/pakcs/
This work has been supported in part by the DAAD/NSF grant INT-9981317, the NSF grants CCR-0110496, CCR-0218224, and CCF-1317249, and the DFG grants Ha 2457/1-2 and Ha 2457/5-2.