Ultra: Interactive Transformation of Functional Programs
Welcome to the Ultra home page. Ultra is an interactive system for transforming Haskell programs, and is itself implemented in this functional programming language.
To install Ultra 2.2 for Windows 95/NT/XP/Vista/7 please download the package, unpack it and start ultra.bat. Skip the following detailed instructions in this case.
To install Ultra 2.2 for Linux and other operating systems, perform the following steps:
- First, install TkGofer 2.2. You can find information about the installation procedure on the TkGofer web page or in the readme file. The Windows version of TkGofer 2.2 is available here.
- Second, download the Ultra 2.2 sources, unpack and place them into some directory accesible by the TkGofer system.
- Then you can start TkGofer 2.2, load the ultra.p project file, and evaluate the function main.
You can also look at the following documentation regarding Ultra:
- The user's manual is available as gzipped PostScript (2.6 MB). Among other things, it provides an introduction to Ultra, sample derivations and a complete system reference.
- You can also read our paper that describes the system and discusses the transformational derivation of the Heapsort algorithm we performed using Ultra.
Version 3.0 extends Ultra to Haskell. You can find details about this extension and its installation here. Ultra 3.0 is available in two ways:
The most recent version of ULTRA implements a frontend to the Glasgow Haskell Compiler (GHC) by using the GHC-API for parsing and type-checking Haskell code. This facilitates compatibility with current Haskell standards and the support of various language extensions.
Furthermore, ULTRA 4.0a offers a completely overhauled user interface (screenshots: Windows, Linux), implemented in the GUI library wxHaskell that is built on top of wxWidgets.
ULTRA 4.0a is available:
The following persons were involved in the development of Ultra: Helmuth Partsch, Wolfram Schulte, Ton Vullinghs, Mark Dettinger, Joachim Schmid, Thorsten Quell, Tobias Häberlein, Walter Guttmann, Michael Stahl and Tobias Weck. We welcome all your comments, feedback, and suggestions, which you can send to Tobias Weck.