Copyright (C) 1996  Kazunori Ueda

$B!&%=%U%H%&%'%"L>>N!'(B klint - Mode Analyzer for KL1 Programs 

$B!&5!G=!'(B klint $B$O!"(BKL1 $B%W%m%0%i%`$r9=@.$9$k=R8l$N0z?t$dJQ?t$,!"$I$N$h$&(B
        $B$JDL?.%W%m%H%3%k$G;H$o$l$F$$$k$+$r!"J88%(B[1]$B$NJ}K!$G@EE*$K2r@O$9(B
        $B$k%D!<%k$G$"$k!#$3$N2r@O$r!"%b!<%I2r@O$H$b$$$&!#%b!<%I2r@O$K$h$C(B
        $B$F!":#$^$G<B9T;~%G%P%C%0$K$h$C$F=|5n$7$F$$$?8m$j$NB?$/$,!"@EE*$K(B
        $B=|5n$G$-$k$h$&$K$J$k(B($BJ88%(B[3])$B!#%b!<%I2r@O$NF~LgE*2r@b$H$7$F$O!"(B
        $BJ88%(B[2]$B$,$"$k!#(B

        klint $B$O!"%W%m%0%i%`$N3F=R8l$N%W%m%H%3%k$r?dO@$7$F!"$=$N7k2L$r%b!<(B
        $B%I%0%i%U$N7A$G=PNO$9$k!#%W%m%0%i%^$,%b!<%I@k8@$rM?$($kI,MW$O$J$$!#(B
        $B%b!<%I$E$1$G$-$J$$>l9g$O!"%W%m%0%i%`Cf$N$I$N5-9f$,!":G=*E*$K8m$j(B
        $B$r0z$-5/$3$7$?$+$rJs9p$7$F!"$=$N;~E@$N%b!<%I%0%i%U$r=PNO$9$k!#<!(B
        $B$NHG$G$O!"%b!<%I$E$1$G$-$J$$860x$r!"J88%(B[4]$B$NJ}K!$K$7$?$,$C$F2r(B
        $B@O$7$FJs9p$9$k$h$&$K2~NI$9$kM=Dj$G$"$k!#(B

        klint $B$O!"%b!<%I@)Ls@8@.7O(B(klint1)$B$H%b!<%I@)Ls=<B-7O(B(klint2)$B$r!"(B
        Unix$B%Q%$%W$G@\B3$7$?9=@.$K$J$C$F$$$k!#%b!<%I@)Ls@8@.7O$O!"%W%m%0(B
        $B%i%`$,9=J8E*$K2]$9$k%b!<%I@)Ls$r=PNO$9$k$b$N$G$"$j!"%b!<%I@)Ls=<(B
        $BB-7O$O!"%b!<%I@)Ls@8@.7O$+$iMh$k@)Ls=89g$r2r$$$F!"%W%m%0%i%`$N<g(B
        $B%b!<%I(B(principal mode)$B$r!"%b!<%I%0%i%U$N7A$G5a$a$k$b$N$G$"$k!#(B

        $B$J$*!"%b!<%I2r@O$O!"(BProlog $B=hM}7O$K8+$i$l$k(B singleton $BJQ?t$N7Y9p(B
        $B5!G=$r4^$s$G$$$k!#(B

$B!&MQES!'(B $B$"$i$f$k(BKL1$B%W%m%0%i%`$N@EE*%G%P%C%0$*$h$S%9%?%$%k%A%'%C(B $B%/(B
    
$B!&;HMQ8@8l!'(B klint1 $B$*$h$S(B klint2 $B$O$9$Y$F(B KL1 $B$G5-=R$5$l!"(BKLIC $B=hM}7O$G(B
        $B%3%s%Q%$%k$9$k$3$H$,$G$-$k!#(Bklint $B$N%H%C%W%l%Y%k$O(B Unix $B$N(B sh
        (Bourne shell) $B$GDj5A$7$F$"$k$N$G!"(BUnix$B4D6-0J30$G$O:FDj5A$9$kI,(B
        $BMW$,$"$k!#(B
                    
$B!&(BOS $BEy$N4D6-!'(B KLIC$B=hM}7O$,2TF/$7$F$$$k(BUnix$B4D6-!#(B

$B!&%U%!%$%k9=@.!'(B
        klint1-main.kl1, klint2-main.kl1, 
        constraints.kl1, decode.kl1,
        findpath.kl1, graph.kl1,
        normalize.kl1, numberbuiltin.kl1,
	outmessage.kl1, read_program.kl1,
        reduce.kl1, stdinout.kl1, unify.kl1
                        $B0J>e$,!"(Bklint1 $B$*$h$S(B klint2 $B$N%=!<%9%W%m%0%i%`(B
        
        klint           Bourne shell $B$GDj5A$7$?%H%C%W%l%Y%k(B
        advertise.txt   $BK\%U%!%$%k(B
        Makefile        make $B%U%!%$%k(B
        README          $B35MW!"(Bklint $B$NF~=PNO!";HMQNc!"%$%s%9%H!<%kJ}K!(B
                        $B$J$I$N>pJs$r4^$`(B
        

$B!&;29MJ88%(B

    [1] Ueda, K. and Morita, M., Moded Flat GHC and Its Message-Oriented
        Implementation Technique.  New Generation Computing, Vol.13,
        No.1 (1994), pp.3-43.

    [2] Ueda, K., I/O Mode Analysis in Concurrent Logic Programming.  In
        Theory and Practice of Parallel Programming, LNCS 907, Springer,
        1995, pp.356-368.

    [3] Ueda, K., Experiences with Strong Moding in Concurrent
        Logic/Constraint Programming.  In Proc. Int. Workshop on
        Parallel Symbolic Languages and Systems (PSLS'95), T. Ito,
        R.H. Halstead, Jr., and C. Queinnec (eds.), LNCS 1068, Springer,
        1996, pp.134-153.

    [4] Cho, K. and Ueda, K., Diagnosing Non-Well-Moded Concurrent Logic
        Programs.  To be presented at 1996 Joint International
        Conference and Symposium on Logic Programming (JICSLP'96), Bonn,
        Germany, September 1996.
