An Algorithmic Framework for Synthesis of Concurrent Programs

  • E. Allen Emerson
  • Roopsha Samanta
Part of the Lecture Notes in Computer Science book series (LNCS, 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.

Keywords

Concurrent Program Algorithmic Framework Synchronization Code Synchronization Region Atomic Section 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)CrossRefGoogle Scholar
  2. 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. 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. 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. 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. 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. 7.
    Emerson, E.A., Clarke, E.M.: Using Branching Time Temporal Logic to Synthesize Synchronization Skeletons. Sci. Comput. Program. 2(3), 241–266 (1982)CrossRefMATHGoogle Scholar
  8. 8.
    Emerson, E.A., Samanta, R.: An Algorithmic Framework for Synthesis of Concurrent Programs, http://www.cerc.utexas.edu/~roopsha/synthsync.html
  9. 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. 10.
    Janjua, M.U., Mycroft, A.: Automatic Correction to Safety Violations in Programs. In: Proceedings of Thread Verification (2006) Google Scholar
  11. 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. 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. 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)CrossRefGoogle Scholar
  14. 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. 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)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • E. Allen Emerson
    • 1
  • Roopsha Samanta
    • 1
  1. 1.Dept. of Computer Science and Computer Engineering Research CentreUniversity of TexasAustinUSA

Personalised recommendations