AITEC Contract Research Projects in FY1997:Intermediate Report |
Principal Investigator : | Dr. Neng-Fa Zhou, Associate Professor |
Faculty of Computer Science and Systems Engineering, | |
Kyusyu Institute of Technology |
DJ is a Java-like object-oriented language, but offers more facilities for specifying GUIs. A DJ program consists of several classes and optionally several constraint definitions. The body of each class is a sequence of class member declarations. Besides FieldDeclaration and MethodDeclaration in a Java class, a class member declaration in a DJ class may also be one of the following: ComponentDeclaration, AttributeDeclaration, ConstraintDeclaration, and ActionDeclaration.
DJ can serve as not only a tool for building graphical user interfaces but also as a tool for solving general constraint satisfaction problems. This is because the constraint solver can determine not only the geometric layout of graphical components, but also the values to be displayed.
To test the design, we have written several applications of DJ,
including a program for drawing various kinds of trees and
programs for solving general constraint satisfaction problems
and displaying the solutions graphically.
To test the compilation algorithms, we have also compiled
several programs into Java by hand.
As a programming language, DJ is very simple. After learning the
basic classes of graphical objects that are already available,
one is able to define easily new classes of graphical objects by
specifying attributes, components, constraints, and actions
associated with the classes. The development environment is
simple too.
The system provides only one command, called dj.
To run a program stored in a file, just type "dj file-name".
The system opens a window in which the solution is displayed.
Besides the solution, there are some menus and buttons through
which the user can control the execution of programs. We will not
have time to implement a debugging tool for DJ, but we will try
to have the compiler display user-friendly error messages.