AITEC Contract Research Projects in FY1997 : Software

(4) Distributed Constraint Solving for Functional Logic Programming

      
Principal Investigator : Dr. Bruno Buchberger, Professor
Research Institute for Symbolic Computation (RISC-Linz)


CFLP - Distributed Constraint Solving for Functional Logic Programming


[Software Functions]

This software distribution represents the first prototype of a distributed
implementation of a programming language called CFLP embedded into the
environment of the computer algebra system Mathematica. The user first starts
Mathematica and loads the packages contained in this distribution which
provide an interpreter for CFLP. The user then writes a CFLP program defining
 
- a set of functions respectively predicates involving
- constraints over variables denoting real numbers and annotated by
- parallelization constructs
 
By entering a command, the user starts the CFLP interpreter which first checks
the program for type-correctness and then computes its solutions displaying
them one by one on the screen. During execution, the interpreter cooperates
with external processes that concurrently solve systems of constraints over
real numbers.
 
This prototype will be later extended to an implementation of CFLP that
handles non-linear constraints over the reals by external solvers running on
various machines in a network. The system can be then applied to problems from
application domains like physics or electrical engineering.

[Necessary Environments]

At the moment, the only environment necessary for running the denoted software
is the computer algebra system Mathematica(tm) 3.0 from Wolfram
Research. Mathematica is available for all major Unix platforms including
Linux, for Windows NT/95, and for MacOS. For further information on
Mathematica, see http://www.wolfram.com

[Quantity of the software and file configuration]

    Readme-E                  ... explanation of the directory structure
    use-of-software-E         ... conditions for using the software
    packages/                 ... implementation of the CFLP system
        CFLPsyntax.nb         ... a palette for interactive use 
        Calculus.m            ... the implementation packages
        RewriteRuleDefs.m  
        RewriteRules.m     
        Scheduler.m                                   
        TSolve.m           
        TermSyntax.m       
        Terms.m            
        TypeChecker.m      
        TypeSyntax.m       
        Types.m
        Variables.m
    documents/                ... the documentation
        packages/             ... source and documentation of the CFLP system
             Calculus.nb          ... as a Mathematica notebook
             Calculus.nb.ps       ... as a PostScript file (for printing)
             ... 
        InstManual.txt        ... the installation manual
        UserManual.ps         ... the user's manual
        CFLP.ps               ... the CFLP report (draft)
        Example/              ... an example for running the system
           README             ... howto run the example
           ElDemo.nb          ... the demonstration notebook
           ElDemo.nb.ps       ... the demonstration notebook (PostScript)
           Electrical.m       ... auxiliary definitions (package)
           Electrical.nb      ... auxiliary definitions (notebook)
           Electrical.nb.ps   ... auxiliary definitions (PostScript)

[FTP]


www-admin@icot.or.jp