About Vital

The Vital project (acronym: Visual Interactive Typed Applicative Language ) is investigating a document-centered approach to functional programming with an emphasis on the display and direct manipulation of complex data structures.

This approach is ultimately aimed at end users in disciplines such as engineering and finance who often need a combination of the expressiveness and robustness that contemporary functional programming languages provide with the ease of use that document-centered programming systems (such as spreadsheets) offer.

The Vital system

The Vital system is an experimental implementation of a subset of Haskell. It is deliberately lightweight in nature: it aims to cover enough aspects of Haskell to illustrate the principles of this approach and to allow significant, interesting programs to be written.

Major omissions at present include:

  • Static type-checking (instead, it uses runtime type-checking);
  • Some syntactic constructs, such as function definitions with multiple LHS pattern matching (case expressions can be used as a substitute);
  • Layout-sensitive syntax (it uses the standard Haskell layout-insensitive syntax with braces and semi-colons).

Implementation

The Vital system is implemented in Java. This gives it portability and, in particular, allows it to be reliably deployed over the web using the Java Web Start mechanism.
  • The Haskell parser is implemented using the JavaCC parser generator;
  • The resultant abstract syntax is compiled to G-code (represented by Java classes);
  • Reduction of the G-code to WHNF is demand-driven by the display mechanism;
  • There is no optimisation present;
  • The GUI uses the Java Swing library.

Related project

Mark Callanan is researching type-sensitive methods of direct manipulation.

Version history

The version history of successive releases of the Vital system is described here.


Feedback on any aspect of Vital is welcome. Updated Dec 04
Keith Hanna
Functional Programming group
University of Kent