Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Abstraction-guided synthesis of synchronization

Published: 17 January 2010 Publication History

Abstract

We present a novel framework for automatic inference of efficient synchronization in concurrent programs, a task known to be difficult and error-prone when done manually.
Our framework is based on abstract interpretation and can infer synchronization for infinite state programs. Given a program, a specification, and an abstraction, we infer synchronization that avoids all (abstract) interleavings that may violate the specification, but permits as many valid interleavings as possible.
Combined with abstraction refinement, our framework can be viewed as a new approach for verification where both the program and the abstraction can be modified on-the-fly during the verification process. The ability to modify the program, and not only the abstraction, allows us to remove program interleavings not only when they are known to be invalid, but also when they cannot be verified using the given abstraction.
We implemented a prototype of our approach using numerical abstractions and applied it to verify several interesting programs.

References

[1]
The SAT4J SAT solver. available at http://www.sat4j.org/.
[2]
Attie, P., and Emerson, E. Synthesis of concurrent systems for an atomic read/atomic write model of computation. In PODC '96 (1996), ACM, pp. 111--120.
[3]
Ball, T., and Rajamani, S.K. Automatically validating temporal safety properties of interfaces. In SPIN (2001), pp. 103--122.
[4]
Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., and Rival, X. A static analyzer for large safety-critical software. In PLDI (2003), pp. 196--207.
[5]
Bloem, R., Chatterjee, K., Henzinger, T., and Jobstmann, B. Better quality in synthesis through quantitative objectives. In CAV (2009), pp. 140--156.
[6]
Cherem, S., Chilimbi, T., and Gulwani, S. Inferring locks for atomic sections. In PLDI (2008), pp. 304--315.
[7]
Clarke, E., and Emerson, E. Design and synthesis of synchronization skeletons using branching-time temporal logic. In Logic of Programs, Workshop (1982), pp. 52--71.
[8]
Clarke, E.M., Grumberg, O., Jha, S., Lu, Y., and Veith, H. Counterexample-guided abstraction refinement. In CAV (2000), pp. 154--169.
[9]
Clarke, Jr., E., Grumberg, O., and Peled, D. Model Checking. The MIT Press, 1999.
[10]
Cousot, P., and Cousot, R. Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximation of fixed points. In POPL (1977), pp. 238--252.
[11]
Emmi, M., Fischer, J.S., Jhala, R., and Majumdar, R. Lock allocation. In POPL (2007), pp. 291--296.
[12]
Griesmayer, A., Bloem, R.P., and Cook, B. Repair of boolean programs with an application to C. In CAV (2006), pp. 358--371.
[13]
Henzinger, T.A., Jhala, R., Majumdar, R., and Sutre, G. Lazy abstraction. In POPL (2002), pp. 58--70.
[14]
Jobstmann, B., Griesmayer, A., and Bloem, R. Program repair as a game. In CAV (2005), pp. 226--238.
[15]
Jobstmann, B., Staber, S., Griesmayer, A., and Bloem, R. Finding and fixing faults. Journal of Computer and System Sciences (JCSS) (2008).
[16]
Manna, Z., and Wolper, P. Synthesis of communicating processes from temporal logic specifications. ACM Trans. Program. Lang. Syst. (TOPLAS) 6, 1 (1984), 68--93.
[17]
McCloskey, B., Zhou, F., Gay, D., and Brewer, E. Autolocker: synchronization inference for atomic sections. In POPL (2006), pp. 346--358.
[18]
Miné, A. The octagon abstract domain. Higher Order Symbol. Comput. 19, 1 (2006), 31--100.
[19]
Nagpaly, R., Pattabiramanz, K., Kirovski, D., and Zorn, B. Tolerace: Tolerating and detecting races. In STMCS: Second Workshop on Software Tools for Multi-Core Systems (2007).
[20]
Pnueli, A., and Rosner, R. On the synthesis of a reactive module. In POPL '89 (New York, NY, USA, 1989), ACM, pp. 179--190.
[21]
Rajamani, S., Ramalingam, G., Ranganath, V.-P., and Vaswani, K. Controlling non-determinism for semantic guarantees. In Exploiting Concurrency Efficiently and Correctly -- (EC)2 (2008).
[22]
Rival, X., and Mauborgne, L. The trace partitioning abstract domain. ACM Trans. Program. Lang. Syst. 29, 5 (2007), 26.
[23]
Shavit, N., and Touitou, D. Software transactional memory. In PODC '95 (New York, NY, USA, 1995), ACM, pp. 204--213.
[24]
Solar-Lezama, A., Arnold, G., Tancau, L., Bodík, R., Saraswat, V.A., and Seshia, S.A. Sketching stencils. In PLDI (2007), pp. 167--178.
[25]
Solar-Lezama, A., Jones, C. G., and Bodík, R. Sketching concurrent data structures. In PLDI (2008), pp. 136--148.
[26]
Solar-Lezama, A., Rabbah, R. M., Bodík, R., and Ebcioglu, K. Programming by Sketching for Bit-Streaming Programs. In PLDI (2005), pp. 281--294.
[27]
Staber, S., Jobstmann, B., and Bloem, R. Finding and fixing faults. In CHARME (2005), pp. 35--49.
[28]
Vechev, M., and Yahav, E. Deriving linearizable fine-grained concurrent objects. In PLDI (2008), pp. 125--135.
[29]
Vechev, M.T., Yahav, E., Bacon, D.F., and Rinetzky, N. Cgcexplorer: a semi-automated search procedure for provably correct concurrent collectors. In PLDI (2007), pp. 456--467.
[30]
Vechev, M.T., Yahav, E., and Yorsh, G. Inferring synchronization under limited observability. In TACAS (2009), pp. 139--154.

Cited By

View all
  • (2024)Programming-by-Demonstration for Long-Horizon Robot TasksProceedings of the ACM on Programming Languages10.1145/36328608:POPL(512-545)Online publication date: 5-Jan-2024
  • (2023)GPURepair: Automated Repair of GPU Kernels (Extended Version)Sādhanā10.1007/s12046-023-02291-049:1Online publication date: 22-Dec-2023
  • (2021)Grafs: declarative graph analyticsProceedings of the ACM on Programming Languages10.1145/34735885:ICFP(1-32)Online publication date: 19-Aug-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 45, Issue 1
POPL '10
January 2010
500 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/1707801
Issue’s Table of Contents
  • cover image ACM Conferences
    POPL '10: Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
    January 2010
    520 pages
    ISBN:9781605584799
    DOI:10.1145/1706299
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 January 2010
Published in SIGPLAN Volume 45, Issue 1

Check for updates

Author Tags

  1. abstract interpretation
  2. concurrency
  3. synthesis

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)12
  • Downloads (Last 6 weeks)3
Reflects downloads up to 26 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Programming-by-Demonstration for Long-Horizon Robot TasksProceedings of the ACM on Programming Languages10.1145/36328608:POPL(512-545)Online publication date: 5-Jan-2024
  • (2023)GPURepair: Automated Repair of GPU Kernels (Extended Version)Sādhanā10.1007/s12046-023-02291-049:1Online publication date: 22-Dec-2023
  • (2021)Grafs: declarative graph analyticsProceedings of the ACM on Programming Languages10.1145/34735885:ICFP(1-32)Online publication date: 19-Aug-2021
  • (2021)Automatic Synthesis of Data-Flow AnalyzersStatic Analysis10.1007/978-3-030-88806-0_22(453-478)Online publication date: 13-Oct-2021
  • (2021)GPURepair: Automated Repair of GPU KernelsVerification, Model Checking, and Abstract Interpretation10.1007/978-3-030-67067-2_18(401-414)Online publication date: 12-Jan-2021
  • (2020)Symbolic Reasoning for Automatic Signal PlacementACM SIGOPS Operating Systems Review10.1145/3421473.342148254:1(64-76)Online publication date: 31-Aug-2020
  • (2020)Synthesizing Precise and Useful Commutativity ConditionsJournal of Automated Reasoning10.1007/s10817-020-09573-wOnline publication date: 29-Aug-2020
  • (2019)Automated synthesis of decentralized controllers for robot swarms from high-level temporal logic specificationsAutonomous Robots10.1007/s10514-019-09861-4Online publication date: 21-May-2019
  • (2017)Strategy synthesis for linear arithmetic gamesProceedings of the ACM on Programming Languages10.1145/31581492:POPL(1-30)Online publication date: 27-Dec-2017
  • (2015)Succinct Representation of Concurrent Trace SetsACM SIGPLAN Notices10.1145/2775051.267700850:1(433-444)Online publication date: 14-Jan-2015
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media