next up previous contents
Next: 2.3.2 各ノードの役割は単純に Up: 2.3 プロセス・ネットワーク構築上の注意点 Previous: 2.3 プロセス・ネットワーク構築上の注意点

2.3.1 入出力を分ける

どの引数が問題記述すなわち入力で, どれがそれに対する解すなわち出力で あるかをはっきり分け, それを意識しながらプログラミングする.

        a([E|X1],Y):-integer(E) |
            E1:=E+1, Y=[E1|Y1], a(X1,Y1).
        a(X,[E|Y1]):-integer(E) |
            E1:=E-1, X=[E1|X1], a(X1,Y1).

このようなストリームの向きが決まっていないプロセスも作れることは作れるが, このようなプロセスをプロセス・ネットワーク に入れておくことはバグの元凶であり, またそもそもプロセス・ネットワークの 各ノードの役割や結合形態を云々すること自体, 難しくなる. また, KLIC処理系の性能アップの切札として導入予定のKL1プログラム 静的解析は, 入出力のはっきりしないプログラムでは効果的に働かないことも 付け加えておく.



next up previous contents
Next: 2.3.2 各ノードの役割は単純に Up: 2.3 プロセス・ネットワーク構築上の注意点 Previous: 2.3 プロセス・ネットワーク構築上の注意点



KLIC