Automatic Programming Server

This is an experimental offering of an Automatic Programming Server that will write computer programs for you.

You may 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.

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

  1. Describe your data structures.
  2. Make one or more views of your data as abstract data.
  3. Request programs that you would like to be written.
The programs are served to you as a web page after the program terminates. You can select the programming language desired (Lisp, C, C++, Java, or Pascal). Programs are available for data structures (e.g. linked lists, binary trees, AVL trees) and for mathematical structures (e.g. line segment, cone).

You must have the Java virtual machine installed to run this demo; you can get it for Windows (msjavx86.exe) here.

The best things in life are free: this demo uses the free software Gnu Common Lisp (GCL), XGCL, X windows [see also XFree86], Java, and WeirdX, a Java implementation of an X server.

Follow these steps:

  1. Specify your data structures, one at a time, as follows. Click the mouse in the input box, then type in the data description. (The editor is a subset of Emacs.) When done, click the mouse outside the input box to define the data structure.
  2. Click the Make a View command to view your types as abstract types.
  3. Click the Make Programs command to select the program(s) you want.


  1. If needed, edit your display name. It should end in :2.0, for example,
  2. Click to start the demo. Scroll down to see the interaction window.

Gordon S. Novak Jr.