Software
From The Programming Languages and Systems Research Group
Contents
Haskell compilation tools
- nhc98 is a compiler for the complete Haskell'98 language. It supports the new common primitive FFI (Foreign Function Interface), and includes the most advanced space-profiling facilities of all Haskell implementations. Most importantly, it allows graphical debugging of programs using both Hat and HOOD.
- Yhc is a fork of nhc98, with a rewritten back end.
- Does your Haskell program give wrong output, produce a runtime error, or fail to terminate? Using Hat (the Haskell Tracer system), with its trace browsers hat-trail, hat-stack, hat-observe, and hat-detect, you can examine in detail the causes of any of these faults.
- hmake is a compilation manager for Haskell. It automatically determines the dependencies between separate modules and does the minimum compilation required to keep everything up-to-date. No need to write Makefiles ever again! Works with nhc98, hbc, and ghc. (Now at version 3.06.)
- hi is an interactive program development environment rather like the Hugs interpreter, but it uses a compiler to gain runtime speed. Based on the hmake compilation manager, it can use whichever Haskell compiler you prefer. (Packaged with hmake.)
- Auburn is Graeme Moss's kit for benchmarking implementations of lazy data structures. Give it several implementations of an ADT (abstract data type) and it will tell you which one is best for your particular application.
- cpphs is a simple Haskell replacement for the ubiquitous C-preprocessor. Since gcc-3.2, the behaviour of cpp has been changing in ways which are increasing incompatible with Haskell's syntax. This simple replacement does conditionals and inclusions in the traditional manner, without fouling up on line continuations, prime characters, and so on. (It does not yet do in-line macro expansion outside conditions.)
Application Software written in Haskell
- Hoogle is a search engine for the Haskell API.
- Xtract is a "grep"-like command-line tool for searching XML and HTML documents.
- HaXml is a toolkit of Haskell modules for processing XML documents, including an XML parser and pretty printer: Combinators is a combinator library for searching, transforming, and generating documents; Dtd2Haskell generates Haskell code from a DTD to treat documents as fully-typed Haskell data; Haskell2Xml generates code to write a DTD and documents from any data structure originally in Haskell.
- Colourise Haskell source code in HTML or ANSI terminal screen codes.
- lp2fp is a program-translator from Prolog to Haskell.
Amusing little toys
- Convert decimal numbers to Roman numerals and back again.
- The winner of the 0th International Obfuscated Haskell Contest (2003).
Obsolete compilers for Haskell
- Niklas Rojemo's older compiler for Haskell 1.3, designed to produce very space-efficient code. Has the same advanced space profiler as nhc98. Older versions of GreenCard and hmake are included.
- Mark Jones's Gofer interpretive compiler extended with: a profiler offering producer, construction, and retainer information; and several variants of a real-time garbage collector. This package is pretty old now.
- Mark Jones's Gofer interpreter, extended with: communicating processes; and several variants of a real-time garbage collector. This package is pretty old now.