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 libraries
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 libraries/documentation
.
The libraries
subdirectory contains a Makefile that allows you to easily do various things, among which:
make ghc | compile all library modules with GHC |
make ghci | load all library modules into GHCi |
make haddock | generate library documentation with Haddock |
make dist | generate a distribution of the library |
make hunit | run HUnit on all test modules |
make quickCheck | run quickCheck on all library modules |
make ghood | generate GHood applets |
If you want to operate on just a part of the library, you can do that by overriding the Makefile's top
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. |
Download
Stable releases
Snapshots
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 |
Contact
For any questions about the UMinho Haskell Libraries and Tools, please contact:
Online demos
Other software
- MatchO: support for matching objects in Java. Includes library and generator.
- INblobs: An editor and interpreter for Interaction Nets - a formalism for functional programming.