 +---------------------------------------------------------------------------+
 | 	To the users of ICOT Free Software:				     |
 | 		Parallel Problem Solving System(No.30, ppss)		     |
 +---------------------------------------------------------------------------+

		                Kazuko Takahashi 
				Central Research Laboratory
			        Mitsubishi Electric Corporation
				takahashi@sys.crl.melco.co.jp

This file shows the rough explanation of the function of the software
and how to use it.
For detail information on the function, see the references,
and on the installation, see INSTALL.j.

1. Function

 Summary

This system consists of compiler and runtime support.
ANDOR-II program is compiled and executed on Multi-PSI,
and all solution search is achieved to generate all possible solutions.

 Function

(1) A parallel logic programming language ANDOR-II which supports both
    AND- and OR-parallelism provides a declarative description for
    concurrent systems with nondeterminism.

(2) An ANDOR-II program is compiled into the KL1 program with full parallelism
    using "coloring scheme." 
    See examples of ANDOR-II program(compute.ar2,cycle.ar2).
    
(3) Computations on all the possible worlds generated by OR-branches
    are executed in parallel.    

(4) Meta-function that realizes communication between possible worlds can
    reduce huge search space.
    
(5) Efficient load balancing is realized on Multi-PSI.


2. How to Run the Program

 environment

  Multi-PSI/16PE(changeable)
  SIMPOS upper version than Ver 6.21
  PIMOS  Ver 2.502(CAL:1.84, KL0:1.81, KL1:1.17, CSP:3.02)

 how to run

(1) In the listener of PIMOS, type
        andor_top:go(FileNameList).
    Then, ANDOR-II programs represented as FileNameList are compiled,
    and the result is stored in the file "-TEMP-.KL1".
    Note that FileNameList is a list of file names in a string form.
        e.g. ["compute.ar2","cycle.ar2"]

(2) In the compiler of PIMOS, compile the file
            -TEMP-.KL1
    by KL1 compiler.

(3) In the listener of PIMOS, execute the goal by typing 
        module:goal.
    Note that module and goal should be written in the compiled ANDOR-II 
    program.

    The system generates all the possible solutions.


3. List of Files

 compiler
  file		        function
  -----------------------------------------------------------------------------
  top.kl1               top level of the compiler
  mode_analyzer.kl1     mode analysis
  spcc.kl1              check of the single producer onto each variable
  andTran2.kl1          transformation of AND-predicates
  orTran.kl1            transformation of OR-predicates
  apool.kl1             realization of meta-function
  andor_io.kl1          reading/writing of files
  ioutil.kl1            processing on wrap/unwrap
  ppri.kl1              pretty print
  tandor.kl1            flattening the multi-solution in a layered form
  utandor.kl1           utility such as generation of variables/predicates and
                        judgement of builtin-predicates


 runtime support

  file		        function
  -----------------------------------------------------------------------------
  a_builtin.kl1         builtin predicates
  atpimos.kl1           processing on file/window and atom/string of PIMOS
  rand1024.kl1          processing colors and process allocation,
                        the unit length of color is 1024
  rand4096.kl1		the unit length of color is 4096
  rand8192.kl1		the unit length of color is 8192


 examples of ANDOR-II programs

  file		        function
  -----------------------------------------------------------------------------
  compute.ar2.1         simple computation on an arbitrary element picked up
                        from a given list
  cycle.ar2.1           simple computation between two processes which behaves
			interactively

References

* Takeuchi,A. and K.Takahashi:
   "An Operational Semantics of ANDOR-II, A Parallel Logic Programming
   Language with AND- and OR-Parallelism,"
   LNCS-491, Concurrency: Theory, Language, and Architecture,
   pp.173-209,Springer-Verlag, 1989,
   also appearing as ICOT TR-511.


