A New Approach for Concurrent Program Slicing
Regarding the progress made in model analysis, more complex models, and consequently more complex programs can now be analyzed. However, this remains a difficult task in particular for concurrent programs which induce a lot of combinatory. Another way to reduce this complexity is to use program decomposition. Program decomposition technics extract a part of a given program while preserving the behavior of the original program w.r.t. a specified property.
Quasar analyzes concurrent Ada programs, using program slicing as decomposition technic. The program slicer is built using the ASIS tools, that provides syntactic and semantic informations on an Ada source code. These informations can be considered as the “semantic and syntactic graph” mapping an Ada program. This allows to save building the graphs used by traditional program slicing technics and thus to design a simpler and more evolutive algorithm.
This paper presents Yasnost, the program slicer used by Quasar, describes the method used to slice concurrent Ada programs and illustrates with two significant examples how concurrent programs analysis can take advantage of program slicing for reducing the analyzed program complexity.
KeywordsDependence Graph Data Dependence Original Program Concurrent Program Transitivity Graph
- [DCH+99]Dwyer, M.B., Corbett, J.C., Hatcliff, J., Sokolowski, S., Zheng, H.: Slicing multi-threaded java programs: A case study. Technical Report 99-7, KSU (1999)Google Scholar
- [EKPPR06]Evangelista, S., Kaiser, C., Pradat-Peyre, J.F., Rousseau, P.: Comparing Java, C# and Ada monitors queuing policies: a case study and its ada refinement. In: Ada Letters. ACM Press, New York (2006)Google Scholar
- [ISO95]ISO/IEC-15291. Ada semantic interface specification (1995)Google Scholar
- [Kri03]Krinke, J.: Context-sensitive slicing of concurrent programs. In: Proceedings of the 9th European software engineering conference held jointly with 10th ACM SIGSOFT international symposium on Foundations of software engineering, pp. 178–187. ACM Press, New York (2003)Google Scholar
- [NR00]Nanda, M.G., Ramesh, S.: Slicing concurrent programs. In: Proceedings of the International Symposium on Software Testing and Analysis, pp. 180–190. ACM Press, New York (2000)Google Scholar
- [SC03]Sward, R.E., Chamillard, A.T.: Adaslicer: an ada program slicer. In: Proceedings of the 2003 annual international conference on Ada, pp. 10–16. ACM Press, New York (2003)Google Scholar
- [Tip95]Tip, F.: A survey of program slicing techniques. Journal of programming languages 3, 121–189 (1995)Google Scholar
- [Zha99]Zhao, J.: Slicing concurrent java programs. In: IWPC 1999: Proceedings of the 7th International Workshop on Program Comprehension, p. 126. IEEE Computer Society, Los Alamitos (1999)Google Scholar