UMinho Haskell Software -- Libraries & Tools
The UMinho Haskell Software
is a repository of software, written in the functional programming language Haskell, that is being developed in the context of various research and educational projects. The objective is to enable use and reuse of software accross project boundaries. In particular, software developed in the context of the Research.PURe Project
, is collected into the UMS repository.
The UMS repository is roughly partitioned into two parts:
- Libraries: a hierarchical library of reusable modules.
- Tools: a collection of tools.
The libraries offer reusable functionality. Each tool bundles part of the library functionality behind an interactive or command-line interface.
If you want to contribute, please consult UsingCVS
The UMinho Haskell Libraries
The UMinho Haskell Libraries
are located in the
subdirectory. The modules included in the libraries cover a wide range of functionality, for instance:
- Data.Relation: Representation and operations on relations. A special case of relations are graphs. The operations include graph chopping and slicing, strong connected component analysis, graphs metrics, and more.
- Language.Gnumeric: Support for analysis and manipulation of spreadsheets.
- Language.Java: Support for analysis and manipulation of Java programs.
- Pointless: Support for pointfree programming.
- Camila: Support for VDM like concepts, such as data type invariants, pre- and post-conditions, and more.
For a complete overview, see the online API documentation
for version 1.0, generated with Haddock. In the distribution, the API documentation can be found in the subdirectory
subdirectory contains a Makefile that allows you to easily do various things, among which:
| compile all library modules with GHC |
| load all library modules into GHCi |
| generate library documentation with Haddock |
| generate a distribution of the library |
| run HUnit on all test modules |
| run quickCheck on all library modules |
| generate GHood applets |
If you want to operate on just a part of the library, you can do that by overriding the Makefile's
variable, for instance as follows:
make top=Data/Relation ghci
And likewise for any other target. Consult the Makefile for other variables that can be overridden.
The UMinho Haskell Tools
Several tools are included in the UMS distributions, among which:
| DrHylo || Derives hylomorphisms from restricted Haskell syntax. |
| ChopaChops || Graph slicing and chopping. |
| HaGLR || Generalized LR parsing. |
| SdfMetz || An SDF monitoring tool |
| Camila || Prototype Camila interpreter |
Further tools are under development, and will be included in future releases, such as:
| VooDooM || Transforms VDM datatypes to a relational representation. |
| Version || Download || Docs || Includes: |
| 2004.26.11 || zip || n/a || Libraries, VooDooM, DrHylo, HaGLR, ChopaChops |
| 2004.08.11 || zip || html || Libraries, VooDooM, DrHylo, HaGLR, ChopaChops |
| 2004.06.22 || zip || html || Libraries, VooDooM, DrHylo |
| 2004.03.09 || zip || html || Libraries, VooDooM, DrHylo |
For any questions about the UMinho Haskell Libraries and Tools, please contact:
- MatchO: support for matching objects in Java. Includes library and generator.
- INblobs: An editor and interpreter for Interaction Nets - a formalism for functional programming.