A Visual Functional Programming Environment
This page contains links to the material comprising Joel Kelso's PhD thesis.
Abstract
The purported advantages of Visual Programming, as applied to general-purpose programming languages, have remained largely unfulfilled. The essence of this thesis is that functional programming languages have at least one natural visual representation, and that a useful programming environment can be based upon this representation.This thesis describes the implementation of a Visual Functional Programming Environment (VFPE). The programming environment has several significant features.
- The environment includes a program editor that is inherently visual and interactive: syntactic program components have a visual representation and are assembled via a graphical interface.
- The program editor incorporates a static analysis system that tracks types for the whole program, making it impossible to construct syntactically incorrect or type-incorrect programs. Type information is continually and explicitly available to the programmer.
- The environment implements an implicitly typed higher-order purely functional language without conforming exactly to any particular language with respect to syntactic structures or reduction semantics.
- Programs can be output as source code for an existing functional language.
- The visual representation allows for continued experimentation with new syntactic features. Some currently included features are algebraic data types, pattern matching, and guarded expressions.
- The environment includes a visual interpreter which allows any expression to be reduced in source form, with a choice of reduction behaviors.
Thesis text
VFPE application (version 0.2)
Despite my struggle of many years against the encroaching tide of software bloat, I have somehow made some unknown modification which means it's broken under Java 1.1 . Unless you have Java 1.3 installed, you'd better use a "with Java" installer.
Here is the list of known bugs. Should you wish for some reason to write non-trivial programs using the editor, please read the notes on the save format at the top of the bug list.
Example programs
Here notes on the included example VFPE programs and instructions on how to view them.
Here are the examples zipped up (105 kb).
These applets were intended to run off a CD. They load many large images which will cause delays over a slow network connection. Here is a zip archive containing all the applets (around 3 Mb).
Note that these slideshows contain large images, so it is suggested that you maximise your browser window while viewing. Unlike the applets, these slideshows do not show the program after every operation. Here is a zip archive with all the slideshows (around 9 Mb).
Source Code and Data
Here is the Java source code for
the VFPE application.
Here is the raw editor timing data
gathered by the instrumented VFPE (an Excel spreadsheet).