A program dependence model for concurrent logic programs and its applications

The authors propose a program dependence model for concurrent logic programs. They present three types of primary program dependences named the sharing dependence, communication dependence, and unification dependence between arguments in a concurrent logic program. We formally define these primary program dependences based on mode information. We further present a dependence-based representation named the argument dependence net (ADN), which explicitly represents all primary program dependences between arguments in a concurrent logic program. We also discuss some applications of the ADN for developing software engineering tools of concurrent logic programs. Finally, we briefly introduce a program analysis system called CLPKIDS for concurrent logic programs, which is a prototype implementation of the techniques introduced.

[1]  Andy King,et al.  Schedule Analysis of Concurrent Logic programs , 1992, JICSLP.

[2]  Jingde Cheng,et al.  Process dependence net of distributed programs and its applications in development of distributed systems , 1993, Proceedings of 1993 IEEE 17th International Computer Software and Applications Conference COMPSAC '93.

[3]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[4]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[5]  Jingde Cheng,et al.  CLPKIDS: a program analysis system for concurrent logic programs , 2001, 25th Annual International Computer Software and Applications Conference. COMPSAC 2001.

[6]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1984, TOPL.

[7]  Saumya K. Debray,et al.  Static inference of modes and data dependencies in logic programs , 1989, TOPL.

[8]  Mireille Ducassé,et al.  Logic Programming Environments: Dynamic Program Analysis and Debugging , 1994, J. Log. Program..

[9]  Luís Moniz Pereira Rational Debugging in Logic Programming , 1986, ICLP.

[10]  Evan Tick,et al.  Sequentializing Parallel Programs , 1991, Declarative Programming.

[11]  Doug DeGroot,et al.  AND-Parallelism of Logic Programs Based on a Static Data Dependency Analysis , 1985, COMPCON.

[12]  Jan Maluszynski,et al.  Synthesis of Directionality Information for Functional Logic Programs , 1993, WSA.

[13]  Zhao Jianjun Slicing Concurrent Java Programs , 1999 .

[14]  Karl J. Ottenstein,et al.  The program dependence graph in a software development environment , 1984, SDE 1.

[15]  Lori A. Clarke,et al.  A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance , 1990, IEEE Trans. Software Eng..

[16]  Saumya K. Debray,et al.  Cost analysis of logic programs , 1993, TOPL.

[17]  Mireille Ducassé,et al.  Hybrid Backward Slicing Algorithm Producing Executable Slices for Prolog , 1995, LPE.

[18]  Mireille Ducassé,et al.  A Backward Slicing Algorithm for Prolog , 1996, SAS.

[19]  Tibor Gyimóthy,et al.  Static Slicing of Logic Programs , 1995, Automated and Algorithmic Debugging.

[20]  Kazunori Ueda,et al.  Design of the Kernel Language for the Parallel Inference Machine , 1990, Computer/law journal.

[21]  Jianjun Zhao,et al.  Slicing concurrent Java programs , 1999, Proceedings Seventh International Workshop on Program Comprehension.

[22]  Jingde Cheng,et al.  A metrics suite for concurrent logic programs , 1998, Proceedings of the Second Euromicro Conference on Software Maintenance and Reengineering.

[23]  Jingde Cheng,et al.  Slicing Concurrent Logic Programs , 1997 .