Skip to main content

Implementing a static analyzer of concurrent programs: Problems and perspectives

  • Conference paper
  • First Online:
Analysis and Verification of Multiple-Agent Languages (LOMAPS 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1192))

Abstract

The aim of the paper is to share the design problems we experienced when we were implementing a prototype analyzer of an asynchronous concurrent language. This new kind of static analyzer is based on previous work about operational semantics of parallel languages that can express concurrency and non-determinism of actions: it constructs abstract automata reflecting all the possible execution behaviours of programs written in languages such as Parallel Pascal [Cri95] or Concurrent ML [Cri96].

We will also present some experimental results dealing with the size of the generated automata and the precision of the analysis. For instance some well-known mutual exclusion protocols have been automatically proven correct. The analyzer has been interfaced using the HTML markup language: this allows the user to ask for computed invariants at given program points.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. F. Bourdoncle. Sémantique des langages impératifs d'ordre supérieur et interprétation abstraite. PhD thesis, École polytechnique, 1992.

    Google Scholar 

  2. P. Cousot and R. Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Proc. 4th Annual ACM Symposium on Principles of Programming Languages, 1977.

    Google Scholar 

  3. P. Cousot and R. Cousot. Semantic analysis of communicating sequential processes. In Proc. 7th International Colloquium on Automata, Languages and Programming, Lecture Notes in Computer Science, 1980.

    Google Scholar 

  4. R. Cleaveland, S. Purushothaman Iyer, and D. Yankelevitch. Optimality in Abstractions of Model-Checking. In Proc. of Static Analysis Symposium, Lecture Notes in Computer Science. Springer-Verlag, September 1995.

    Google Scholar 

  5. R. Cridlig. Semantic Analysis of Shared-Memory Concurrent Languages using Abstract Model-Checking. In Proc. ACM Symposium on Partial Evaluation and Program Manipulation, June 1995.

    Google Scholar 

  6. R. Cridlig. Semantic Analysis of Concurrent ML by Abstract ModelChecking. In B. Steffen and T. Margaria, editors, Proc. International Workshop on Verification of Infinite State Systems, volume MIP-9614. Universität Passau, August 1996.

    Google Scholar 

  7. D. Dams, O. Grumberg, and R. Gerth. Abstract interpretation of reactive systems: Abstractions preserving ∀CTL*, ∃CTL* and CTL*. In E.-R. Olderog, editor, Proc. IFIP WG2.1/WG2.2/WG2.3 Working Conference on Programming Concepts, Methods and Calculi (PROCOMET), IFIP Transactions, Amsterdam, June 1994. North-Holland/Elsevier.

    Google Scholar 

  8. E. W. Dijkstra. Cooperating sequential processes. In F. Genuys, editor, Programming Languages. Academic Press, 1968.

    Google Scholar 

  9. E. Goubault. The Geometry of Concurrency. PhD thesis, Ecole Polytechnique, Palaiseau, France, 1995.

    Google Scholar 

  10. C. A. R. Hoare. Communicating Sequential Processes. Communications of the ACM, 21(8):667–677, 1978.

    Article  Google Scholar 

  11. M. Karr. Affine relationships among variables of a program. Acta Informatica, 6:133–151, 1976.

    Article  Google Scholar 

  12. P. Kelb. Model Checking and Abstraction: A Framework Approximating both Truth and Failure Information. Technical report, University of Oldenburg, 1994.

    Google Scholar 

  13. M. Raynal. Algorithmique du parallélisme: le problème de l'exclusion mutuelle. Dunod, 1984.

    Google Scholar 

  14. A. Valmari. Eliminating redundant interleavings during concurrent program verification. In G. Goos and J. Hartmanis, editors, PARLE '89, volume 366 of Lecture Notes in Computer Science, pages 89–103, 1989.

    Google Scholar 

  15. N. Wirth and K. Jensen. PASCAL user manual and report. Springer-Verlag, second edition, 1978.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mads Dam

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Cridlig, R. (1997). Implementing a static analyzer of concurrent programs: Problems and perspectives. In: Dam, M. (eds) Analysis and Verification of Multiple-Agent Languages. LOMAPS 1996. Lecture Notes in Computer Science, vol 1192. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-62503-8_11

Download citation

  • DOI: https://doi.org/10.1007/3-540-62503-8_11

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-62503-2

  • Online ISBN: 978-3-540-68052-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics