Graphical Programming Server

This is an experimental offering of a Graphical Programming Server (GPS) that will write computer programs for you.

It is currently UNDER CONSTRUCTION. The user interface is not fancy.

You are free to use the programs that are generated for any legitimate purpose. However, these programs are furnished "as is" and with NO WARRANTY of any kind, expressed or implied, including warranties of merchantability or fitness for any purpose.

In most programming languages, a procedure specifies argument types, and any call to that procedure must use the same types. Therefore, to reuse someone else's procedure, you must understand and conform to their data types.

In our approach, a view describes how your data matches the abstract data used by the system. Generic procedures can be specialized by compilation through the view to yield versions of the programs that operate on your data.

GPS uses inference and type propagation to create the views necessary to make a program out of generic components. The desired program is synthesized, through compilation and partial evaluation, as a Lisp program; then it is translated to another language if the desired language is other than Lisp.

To obtain programs from this Graphical Programming Server, you must:

  1. Describe your data structures.
  2. Describe the program you want by connecting boxes and making menu selections.
The programs are served to you as a file after the demo is finished. You can select the programming language desired (Lisp, C, C++, Java, or Pascal).

The programs that are available are iterative programs that iterate over collections of items and accumulate some aspect of the items. Various accumulators and data structures are available.

When the program is started, a window is created with a command menu and input and output areas. Follow the directions to perform the three steps listed above.

Note: For remote users, it may take several minutes before the connection to X is fully established. After clicking in an input area and typing, you may have to wait a few minutes before typing is echoed.