This is a system to manage addresses. It consists of a
graphical user interface for the convenient insertion and
modification of addresses and an address server to access
addresses from Internet clients. To see some part of the functionality
of the address server, you can see
here the current list of subscribers
of the Curry mailing list. The implementation uses the features for
persistent predicates and the
GUI library of Curry.
For further details contact
Michael Hanus.
Bibliographic database
This is a system to store, retrieve and convert bibliographic
information oriented at documents in BibTeX format.
In addition to pure BibTeX, entries also contain lists of
keywords and signatures (which can be queried).
The implementation has a graphical user interface for the convenient access,
insertion, and modification of bibliographic entries.
It is possible to convert entries or the complete database
into various formats, including standard BibTeX or XML.
The implementation uses various libraries including the
GUI library of Curry.
For further details contact
Michael Hanus.
This system is able to generate appropriate chords for the accompaniment
of a given melody. There is also a
paper which sketches the implementation and describes
the advantages of Curry to implement this application.
CIDER is a graphical programming and development environment for Curry.
CIDER is intended as a platform to integrate various
tools for analyzing and debugging Curry programs.
Currently, it consists of
a program editor, various tools for analyzing properties of functions
in Curry programs (types, overlapping definitions, complete definitions,
dependencies etc),
a graphical debugger, i.e., a visualization of the evaluation
of expressions, and a tool for drawing dependency graphs.
The implementation uses Curry's
GUI library and the
FlatCurry library for meta-programming in Curry.
Furthermore, it provides a connection
to the daVinci
graph visualization tool and a meta-interpreter for executing
FlatCurry programs in Curry.
For further details contact
Michael Hanus.
COOSy is an implementation of a lightweight approach for debugging
functional logic programs in Curry by observations. It consists of a
library plus a viewing tool. Programmers can annotate their program
with observation functions for data structures and functions which may
both contain or be applied to logical variables. The parts of observed
objects that are evaluated during the execution are recorded in a
trace file and can be viewed by means of a pretty printer integrated
in a graphical user interface. The tool covers all aspects of modern
functional logic multiparadigm languages such as lazy evaluation,
higher order functions, non-deterministic search, logical variables,
concurrency and constraints.
Further details are available in the
COOSy web page.
CurryBrowser is a tool to browse through the modules and functions
of a Curry application, show them in various formats,
and analyze their properties.
Moreover, it is constructed in a way so that
new analyzers can be easily connected to CurryBrowser.
A detailed description of the ideas behind this tool can be found in the paper
"
A Generic Analysis Environment for Declarative Programs".
Currently, it consists of
a program editor, various tools for analyzing properties of functions
in Curry programs (types, overlapping definitions, complete definitions,
dependencies etc), and tools for drawing dependency graphs.
CurryBrowser is part of the
PAKCS distribution
and can be easily used inside the PAKCS environment.
The implementation uses Curry's
GUI library and the
FlatCurry library for meta-programming in Curry.
For further details look into the manual of PAKCS or contact
Michael Hanus.
CurryDoc is a tool for the automatic generation of documentation
manuals in HTML format from programs written in Curry.
The documentation is generated by
combining comments in the source program with information extracted
from the program. It extends other tools with a similar goal (e.g., javadoc)
by the inclusion of information in the generated
documents which has been computed by analyzing the structure and
approximating the run-time behavior of the program. CurryDoc is
completely implemented in Curry and is used to generate the
documentation of the
libraries included in PAKCS.
CurryWeb
CurryWeb is an open system to support web-based learning.
Characteristic features of this system are openness
(i.e., no strong distinction between instructors and students) and
self-responsible use (e.g., every user is responsible
for selecting the right material to obtain the desired knowledge).
The system supports the selection of material by
structuring all learning material hierarchically
and as a hypergraph whose nodes and edges are marked with
educational objectives and educational units, respectively.
The complete system is implemented in Curry
and exploits the various features of Curry, in particular, for
HTML programming.
There is also a
paper
describing the ideas of this system in more detail.
For further details contact
Michael Hanus.
Ecological simulation
This system simulates the ecological behavior of a river
depending on sewage running into different parts of the river.
The system together with an implementation of Curry
is described in the following master thesis (in Spanish):
Santiago Escobar Román:
Implementación de un lenguaje declarativo avanzado y
su aplicación a la simulación del ecosistema de una
cuenca hidrográfica
Facultad de Informática, Universidad Politécnica de Valencia, Spain,
September 1998
Recipe database
This is a system to manage a database containing recipes
(and references to recipes). It has a
graphical user interface for the convenient access, insertion, and
modification of recipes. Recipes will be automatically
converted into HTML format for providing WWW access to
the database and into LaTeX for formatting printing.
The implementation uses the
GUI library of Curry.
For further details contact
Michael Hanus.
SOL (Solution OnLine)
SOL is a web-based system to support practical assignments
of courses, e.g., it is applied in computer science courses
at the University of Kiel.
SOL provides web-based functionality for lectures, tutors (who correct
assignments), and students. Lectures can structure courses into units
that contain various assignments, e.g., multiple/single choice tests,
gap texts, programming tasks etc. Students can submit their solutions
to a learning unit which will be judged by tutors.
Students can form smaller learning groups to solve their tasks.
Moreover, SOL contains a message system to exchange information
between students, tutors, and lectures.
The complete system is implemented in Curry
and exploits the various features of Curry, in particular, for
database programming and
HTML programming.
An example installation
can be found
here
For further details contact
Michael Hanus.
Web Server Scripting
Several dynamic web pages have been implemented using Curry's
HTML library which is based on standard CGI features but exploits
the functional and logic features of Curry to support
the convenient and high-level implementation of web services.
There is also a
paper which describes the ideas behind the design of
this library. For further details contact
Michael Hanus.
Wine manager
This is a system to manage a (private) wine cellar.
It has a graphical user interface for the convenient access, insertion, and
modification of wines (structured into categories).
Wine lists can be converted into HTML and LaTeX format for
printing or offering wines in the web.
The implementation uses the
GUI library of Curry.
For further details contact
Michael Hanus.