Skip to main content

An Algorithmic Framework for Synthesis of Concurrent Programs

  • Conference paper
Automated Technology for Verification and Analysis (ATVA 2011)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6996))

Abstract

We present a framework that takes unsynchronized sequential processes along with a temporal specification of their global concurrent behaviour, and automatically generates a concurrent program with synchronization code ensuring correct global behaviour. The synthesized synchronization code is based on monitors with wait and notify operations on condition variables, and mutual-exclusion locks. Novel aspects of our framework include realistic low-level synchronization implementations, synthesis of both simple coarse-grained synchronization and more complex fine-grained synchronization, and accommodation of both safety and liveness in global correctness properties. The method is fully automatic as well as sound and complete.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Attie, P.C.: Synthesis of Large Concurrent Programs via Pairwise Composition. In: Proceedings of Conference on Concurrency Theory (CONCUR), pp. 130–145. ACM, New York (1999)

    Chapter  Google Scholar 

  2. Attie, P.C., Emerson, E.A.: Synthesis of Concurrent Systems with Many Similar Sequential Processes. In: Proceedings of Principles of Programming Languages (POPL), pp. 191–201. ACM, New York (1989)

    Google Scholar 

  3. Attie, P.C., Emerson, E.A.: Synthesis of Concurrent Systems for an Atomic Read/Atomic Write Model of Computation. In: Proceedings of Principles of Distributed Computing (PODC), pp. 111–120. ACM, New York (1996)

    Google Scholar 

  4. Cherem, S., Chilimbi, T., Gulwani, S.: Inferring Locks for Atomic Sections. In: Proceedings of Programming Language Design and Implementation (PLDI), pp. 304–315. ACM, New York (2008)

    Google Scholar 

  5. Deng, X., Dwyer, M.B., Hatcliff, J., Mizuno, M.: Invariant-based Specification, Synthesis, and Verification of Synchronization in Concurrent Programs. In: Proceedings of International Conference on Software Engineering (ICSE), pp. 442–452. ACM, New York (2001)

    Google Scholar 

  6. Emerson, E.A., Sadler, T., Srinivasan, J.: Effcient Temporal Reasoning. In: Proceedings of Principles of Programming Languages (POPL), pp. 166–178. ACM, New York (1989)

    Google Scholar 

  7. Emerson, E.A., Clarke, E.M.: Using Branching Time Temporal Logic to Synthesize Synchronization Skeletons. Sci. Comput. Program. 2(3), 241–266 (1982)

    Article  MATH  Google Scholar 

  8. Emerson, E.A., Samanta, R.: An Algorithmic Framework for Synthesis of Concurrent Programs, http://www.cerc.utexas.edu/~roopsha/synthsync.html

  9. Emmi, M., Fishcher, J.S., Jhala, R., Majumdar, R.: Lock Allocation. In: Proceedings of Principles of Programming Languages (POPL), pp. 291–296 (2007)

    Google Scholar 

  10. Janjua, M.U., Mycroft, A.: Automatic Correction to Safety Violations in Programs. In: Proceedings of Thread Verification (2006)

    Google Scholar 

  11. Pnueli, A., Rosner, R.: On the Synthesis of a Reactive Module. In: Proceedings of Principles of Programming Languages (POPL), pp. 179–190. ACM, New York (1989)

    Google Scholar 

  12. Solar-Lezama, A., Rabbah, R., Bodik, R., Ebcioglu, K.: Programming by Sketching for Bit-streaming Programs. In: Proceedings of Programming Language Design and Implementation (PLDI), pp. 281–294. ACM, New York (2005)

    Google Scholar 

  13. Vechev, M.T., Yahav, E., Yorsh, G.: Inferring Synchronization under Limited Observability. In: Kowalewski, S., Philippou, A. (eds.) TACAS 2009. LNCS, vol. 5505, pp. 139–154. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  14. Vechev, M.T., Yahav, E., Yorsh, G.: Abstraction-Guided Synthesis Of Synchronization. In: Proceedings of Principles of Programming Languages (POPL), pp. 327–388 (2010)

    Google Scholar 

  15. Yavuz-Kahveci, T., Bultan, T.: Specification, Verification, and Synthesis of Concurrency Control Components. In: Proceedings of International Symposium on Software Testing and Analysis (ISSTA), pp. 169–179. ACM, New York (2002)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Emerson, E.A., Samanta, R. (2011). An Algorithmic Framework for Synthesis of Concurrent Programs. In: Bultan, T., Hsiung, PA. (eds) Automated Technology for Verification and Analysis. ATVA 2011. Lecture Notes in Computer Science, vol 6996. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-24372-1_41

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-24372-1_41

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-24371-4

  • Online ISBN: 978-3-642-24372-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics