Program slicing for codesign

Program slicing is a software analysis technique that computes the set of operations in a program that may affect the computation at a particular operation. Interprocedural slicing techniques have separately addressed concurrent programs and hardware description languages. However, application of slicing to codesign of embedded systems requires dependence analysis across the hardware-software interface. We extend program slicing for a codesign environment. Hardware-software interactions common in component-based systems are mapped to previously introduced dependences, including the interference and signal dependences. We introduce a novel access dependence that models a memory access side effect that results in activation of a process. A slicing algorithm that incorporates this variety of dependences is described.

[1]  JacksonDaniel,et al.  A new model of program dependences for reverse engineering , 1994 .

[2]  Thomas W. Reps,et al.  Precise interprocedural chopping , 1995, SIGSOFT FSE.

[3]  Liang Guo,et al.  Evaluating explicitly context-sensitive program slicing , 2001, PASTE '01.

[4]  Paul Anderson,et al.  Software Inspection Using CodeSurfer , 2001 .

[5]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[6]  Mariam Kamkar,et al.  An overview and comparative classification of program slicing techniques , 1995, J. Syst. Softw..

[7]  Masahiro Fujita,et al.  Program Slicing of Hardware Description Languages , 1999, CHARME.

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

[9]  Gregg Rothermel,et al.  System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[10]  Mary Jean Harrold,et al.  Reuse-driven interprocedural slicing , 1998, Proceedings of the 20th International Conference on Software Engineering.

[11]  Mangala Gowri Nanda,et al.  Slicing concurrent programs , 2000, ISSTA '00.

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

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

[14]  Jens Krinke,et al.  Static slicing of threaded programs , 1998, PASTE '98.

[15]  Aniello Cimitile,et al.  Software salvaging based on conditions , 1994, Proceedings 1994 International Conference on Software Maintenance.