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