Technical Report Number
Conflict resolution is a form of global control used in production systems to achieve an efficient sequential execution of a rule-based program. This type of control is not used to parallel production system models [6,13]. Instead, only those programs that make no assumptions regarding conflict resolution are executed in parallel. Therefore, the initial sequential rule-based programs are either executed in parallel without their conflict resolution strategy, which normally results in incorrect behavior, or the programs are transformed in an ad hoc manner to execute on an particular parallel production system model. As a result, these programs do not exhibit the parallelism hoped for [10,13]. We believe that a second reason behind the lack of parallelism is that no formal methods of verifying the correctness of rule-based programs are utilized. By correctness, we mean verifying the behavior of the program meets the specifications given. Correctness is especially important when conflict resolution is no longer utilized. It is necessary to transform sequential rule-based programs into equivalent programs without conflict resolution. Also, the parallel execution of a rule-based program is more complex and demands these formal methods even more than its sequential counterpart. In this paper, we present preliminary ideas for an approach to designing and developing correct rule-based programs for parallel execution. We investigate the difficulty in transforming a simple sequential rule-based program to a new version of the program with no conflict resolution. Also, we investigate the use of a new programming paradigm and language that may result in more efficient programs which provably correct, and can be executed in parallel .
Gamble, Rose F., "Transforming a Rule-based Program" Report Number: WUCS-90-13 (1991). All Computer Science and Engineering Research.