This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Formal Derivation of Rule-Based Programs
March 1993 (vol. 19 no. 3)
pp. 277-296

It is shown that a combination of specification and program refinement may be applied to deriving efficient concurrent rule-based programs. Specification refinement is used to generate an initial rule-based program that is refined into a program which is highly concurrent and efficient. This program derivation strategy is divided into two major tasks. The first task relies on specification refinement. Techniques similar to those employed in the derivation of UNITY programs are used to produce a correct rule-based program having a static knowledge base. The second task involves program refinement and is specific to the development of concurrent rule-based programs. It relies heavily on the availability of a computational model, such as Swarm, that has the ability to dynamically restructure the knowledge base. The ways in which a Swarm program can be translated to OPS5 specifically, given some restrictions, while maintaining the correctness criteria are discussed.

[1] R. J. R. Back and K. Sere, "Stepwise refinement of parallel algorithms,"Sci. Comput. Programming, vol. 13, pp. 133-180, 1990.
[2] J. P. Banâtre and D. Le Métayer, "The GAMMA model and its discipline of programming,"Sci. Computer Programming, vol. 15, pp. 55-77, 1990.
[3] A. Brogi and P. Ciancarini, "The concurrent language, shared prolog,"Ass. Comput. Mach. Trans. Programming Languages and Syst., vol. 13, no. 1, 1991.
[4] N. Carriero and D. Gelernter, "Linda in context,"Commun. ACM, vol. 32, pp. 444-458, Apr. 1989.
[5] K. M. Chandy and J. Misra,Parallel Program Design: A Foundation. Reading, MA: Addison-Wesley, 1988.
[6] H. C. Cunningham and G.-C. Roman, "A UNITY-style programming logic for a shared dataspace language,"IEEE Trans. Parallel and Distr. Syst., vol. 1, no. 3, pp. 365-376, 1990.
[7] E. W. Dijkstra,A Discipline of Programming. Englewood Cliffs, NJ: Prentice-Hall, 1976.
[8] C. L. Forgy, "OPS5 user's manual," Tech. Rep. CMU-CS-81-13, Carnegie-Mellon University, 1981.
[9] R. F. Gamble, G.-C. Roman, and W. E. Ball, "Formal verification of rule-based programs," inProc. 9th Nat. Conf. Artificial Intell., 1991, pp. 329-334.
[10] D. Gries,The Science of Programming. New York: Springer-Verlag, 1981.
[11] A. Gupta,Parallelism in Production Systems, Morgan Kaufmann, Palo Alto, Calif., 1987.
[12] T. Ishida and S. J. Stolfo, "Towards the parallel execution of rules in production system programs," inProc. IEEE Int. Conf. Parallel Processing, 1985, pp. 568-575.
[13] J. McDermott, "R1: A rule-based configurer of computer systems,"Artificial Intell., vol. 19, no. 1, 1982.
[14] D. P. Miranker, C. M. Kuo, and J. C. Browne, "Parallel compilation of rule-based programs," inProc. 1990 Int. Conf. Parallel Processing, pp. 247-251.
[15] A. Pasik and S. J. Stolfo, "Improving production system performance on parallel architectures by creating constrained copies of rules," Tech. Rep., Columbia University, New York, NY, 1987.
[16] G.-C. Roman and H. C. Cunningham, "Mixed programming metaphors in a shared dataspace model of concurrency,"IEEE Trans. Software Eng., vol. 16, no. 12, pp. 1361-1373, 1990.
[17] J. G. Schmolze, "Guaranteeing serializable results in synchronous parallel production systems,"J. parallel and Distributed Computing, vol. 13, no. 4, pp. 348-365, 1991.
[18] J. G. Schmolze and S. Goel, "A parallel asynchronous distributed production system," inProc. 8th Nat. Conf. Artificial Intell., 1990, pp. 65-71.
[19] T. Sellis, C.-C. Lin, and L. Raschid, "Implementing large production systems in a DBMS environment: Concepts and algorithms," Tech. Rep. UMIACS-TR-87-68, University of Maryland, College Park, 1987.
[20] P. M. Winston,Artificial Intelligence. Reading, MA: Addison-Wesley, 1984.

Index Terms:
program refinement; efficient concurrent rule-based programs; initial rule-based program; program derivation strategy; specification refinement; UNITY programs; correct rule-based program; static knowledge base; computational model; Swarm; OPS5; correctness criteria; formal specification; knowledge based systems; logic programming; parallel programming
Citation:
G.-C. Roma, R.F. Gamble, W.E. Ball, "Formal Derivation of Rule-Based Programs," IEEE Transactions on Software Engineering, vol. 19, no. 3, pp. 277-296, March 1993, doi:10.1109/32.221138
Usage of this product signifies your acceptance of the Terms of Use.