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.


Dependence Graph Data Dependence Original Program Concurrent Program Transitivity Graph 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [Che93]
    Cheng, J.: Slicing concurrent programs - a graph-theoretical approach. In: Fritzson, P.A. (ed.) AADEBUG 1993. LNCS, vol. 749, pp. 223–240. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  2. [CX01]
    Chen, Z., Xu, B.: Slicing concurrent java programs. SIGPLAN Not. 36(4), 41–47 (2001)MathSciNetCrossRefGoogle Scholar
  3. [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
  4. [EKPP+05]
    Evangelista, S., Kaiser, C., Pajault, C., Pradat-Peyre, J.-F., Rousseau, P.: Dynamic tasks verification with quasar. In: Vardanega, T., Wellings, A.J. (eds.) Ada-Europe 2005. LNCS, vol. 3555, pp. 91–104. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  5. [EKPPR03]
    Evangelista, S., Kaiser, C., Pradat-Peyre, J.-F., Rousseau, P.: Quasar: A new tool for concurrent ada programs analysis. In: Rosen, J.-P., Strohmeier, A. (eds.) Ada-Europe 2003. LNCS, vol. 2655, pp. 168–181. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  6. [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
  7. [Eva05]
    Evangelista, S.: High level petri nets analysis with helena. In: Ciardo, G., Darondeau, P. (eds.) ICATPN 2005. LNCS, vol. 3536, pp. 455–464. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  8. [Hoa74]
    Hoare, C.A.R.: Monitors: an operating system structuring concept. Commun. ACM 17(10), 549–557 (1974)CrossRefzbMATHGoogle Scholar
  9. [HRB90]
    Horwitz, S., Reps, T., Binkley, D.: Interprocedural slicing using dependence graphs. ACM Trans. Program. Lang. Syst. 12(1), 26–60 (1990)CrossRefGoogle Scholar
  10. [ISO95]
    ISO/IEC-15291. Ada semantic interface specification (1995)Google Scholar
  11. [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
  12. [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
  13. [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
  14. [Tip95]
    Tip, F.: A survey of program slicing techniques. Journal of programming languages 3, 121–189 (1995)Google Scholar
  15. [Wei84]
    Weiser, M.: Program slicing. IEEE Transactions on Software Engineering 10(4), 352–357 (1984)CrossRefzbMATHGoogle Scholar
  16. [XQZ+05]
    Xu, B., Qian, J., Zhang, X., Wu, Z., Chen, L.: A brief survey of program slicing. SIGSOFT Softw. Eng. Notes 30(2), 1–36 (2005)CrossRefGoogle Scholar
  17. [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

Copyright information

© IFIP International Federation for Information Processing 2006

Authors and Affiliations

  • Pierre Rousseau
    • 1
  1. 1.CEDRIC – CNAM ParisParis

Personalised recommendations