Our project work started in September 1997. The first three months of the project were dedicated to the design of the interpretation mechanism: the lazy narrowing calculus developed by Prof. Ida was extended towards parallelism and constraint solving for which it was corresponingly equipped it with a type system. In September and October, Prof. Buchberger and Mircea Marin from RISC-Linz spent six weeks with the group of Prof. Ida at the University of Tsukuba to elaborate the details in cooperation.
The next tree months of the project (till the end of February 1998) were dedicated to specifying the extended calculus and to implementing the extensions in the functional logic language interpreter.
The resulting language, calculus, and system are documented in detail in
Appendix . The system source code, documentation, and electronic
tutorial are part of the package distribution.
The implementation work included the development of an interface to external
constraint solvers and the introduction of the following processes running
external to the interpreter (see Figure ):
Figure 1: The architecture of the CFLP system
At that time, the scheduler and the sample solver were implemented as separate Mathematica processes communicating via the MathLink protocol (but still running within one machine in a pseudo-parallel fashion). The scheduler was asynchronously collecting systems of constraints generated during the execution of the interpreter and forwarding them to the constraint solvers. The simplified solutions were collected and transferred back to the interpreter.
From March to September 1998, the following major changes were made to the system:
The period from October 1998 to January 1999 was dedicated to system brushup. This work included: