README.md 2.37 KB
Newer Older
Michael Hanus 's avatar
Michael Hanus committed
1
2
3
Curry Tools
===========

4
5
6
This directory contains various tools for Curry
that are used by different Curry systems, like PAKCS or KiCS2.

7
Currently, it contains the following tools:
8

Michael Hanus 's avatar
Michael Hanus committed
9
`addtypes`:
Björn Peemöller 's avatar
Björn Peemöller committed
10
A tool that adds type signatures to a given Curry program.
Michael Hanus 's avatar
Michael Hanus committed
11

12
`analysis`:
Michael Hanus 's avatar
Michael Hanus committed
13
14
A directory containing various analyses for Curry programs.
These are used in the `CASS` and `currydoc` tools.
15

Michael Hanus 's avatar
Michael Hanus committed
16
17
18
19
`browser`:
A tool to browse through the modules and functions of a Curry program,
show them in various formats, and analyze their properties.

20
21
22
`casc`:
A style checker for Curry programs.

Michael Hanus 's avatar
Michael Hanus committed
23
24
25
26
27
`CASS`:
This directory contains the implementation of the
Curry Analysis Server System, a generic and distributed analysis system
for Curry programs.

Michael Hanus 's avatar
Michael Hanus committed
28
29
30
31
32
33
`cpns`:
This directory contains scripts and executables for the
Curry Port Name Server (CPNS) which is responsible for managing the
symbolic names assigned to the named sockes and ports on a local machine
(see libraries `NamedSocket` and `Ports` for more details).

Michael Hanus 's avatar
Michael Hanus committed
34
35
36
37
`curry2js`:
A compiler for Curry into JavaScript programs used in the
generation of web user interfaces (WUIs).

Michael Hanus 's avatar
Michael Hanus committed
38
39
`currycheck`:
A property test tool for Curry programs.
40

41
42
`currydoc`:
A documentation generator for Curry programs.
Michael Hanus 's avatar
Michael Hanus committed
43

Michael Hanus 's avatar
Michael Hanus committed
44
45
46
47
`currypp`:
A preprocessor for Curry programs implementing integrated code,
default rules, deterministic functions, and dynamic contract checking.

48
49
50
51
`currytest`:
A test tool for Curry programs.

`ertools`:
Michael Hanus 's avatar
Michael Hanus committed
52
53
Compilers to translate database (ER) models
into Curry programs providing high-level access to relational databases.
Michael Hanus 's avatar
Michael Hanus committed
54

55
56
`importcalls`:
A tool to show all calls to imported functions in a module.
Michael Hanus 's avatar
Michael Hanus committed
57

Michael Hanus 's avatar
Michael Hanus committed
58
59
60
61
62
63
64
65
66
67
68
69
70
71
`optimize`:
The implementation of optimization tools cor Curry,
in particular, a transformation tool to replace Boolean equalities
by unification constraints.

`runcurry`:
The implementation of the command `runcurry`.

`spicey`:
The implementation of Curry's web framework Spicey.

`verification`:
This directory contains tools to support the verification of
Curry programs, e.g., a translator of Curry programs into Agda.
Michael Hanus 's avatar
Michael Hanus committed
72

Michael Hanus 's avatar
Michael Hanus committed
73
74
75
76
77
`www`:
This directory contains scripts and executables for the
event handler server that is required to execute dynamic web
pages implemented with the libraries HTML or WUI.

Michael Hanus 's avatar
Michael Hanus committed
78
79
80
81
82
`xmldata`:
This directory contains a tool to generate conversion functions
between data types and XML representations. The corresponding
tool is called by the command `data2xml` in the binary directory
of the Curry system.