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.
program slicing slice codesign software software analysis computation operability affect concurrent program hardware description language hardware applications embedded systems dependencies dependence analysis interfaces environments interaction component-based system interference signaling access model memorialized effect activation process algorithm