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:
- Describe your data structures.
- 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.