Software

From The Programming Languages and Systems Research Group
Jump to: navigation, search


Haskell compilation tools

nhc98

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

Yhc is a fork of nhc98, with a rewritten back end.

Hat

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

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

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

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

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

Hoogle is a search engine for the Haskell API.

Xtract

Xtract is a "grep"-like command-line tool for searching XML and HTML documents.

HaXml

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.

HsColour

Colourise Haskell source code in HTML or ANSI terminal screen codes.

lp2fp

lp2fp is a program-translator from Prolog to Haskell.

Amusing little toys

Roman numeral converter

Convert decimal numbers to Roman numerals and back again.

remorse

The winner of the 0th International Obfuscated Haskell Contest (2003).

Obsolete compilers for Haskell

nhc13

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.

York gofcc

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.

Embedded gofer

Mark Jones's Gofer interpreter, extended with: communicating processes; and several variants of a real-time garbage collector. This package is pretty old now.