Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1706299.1706338acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
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
  • (2023)Inductive Program Synthesis via Iterative Forward-Backward Abstract InterpretationProceedings of the ACM on Programming Languages10.1145/35912887:PLDI(1657-1681)Online publication date: 6-Jun-2023
  • (2023)Absynthe: Abstract Interpretation-Guided SynthesisProceedings of the ACM on Programming Languages10.1145/35912857:PLDI(1584-1607)Online publication date: 6-Jun-2023
  • (2023)Symbolic Fixpoint Algorithms for Logical LTL Games2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE56229.2023.00212(698-709)Online publication date: 11-Sep-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

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
  • 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
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]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 January 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. abstract interpretation
  2. concurrency
  3. synthesis

Qualifiers

  • Research-article

Conference

POPL '10
Sponsor:

Acceptance Rates

Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)12
  • Downloads (Last 6 weeks)2
Reflects downloads up to 18 Aug 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Inductive Program Synthesis via Iterative Forward-Backward Abstract InterpretationProceedings of the ACM on Programming Languages10.1145/35912887:PLDI(1657-1681)Online publication date: 6-Jun-2023
  • (2023)Absynthe: Abstract Interpretation-Guided SynthesisProceedings of the ACM on Programming Languages10.1145/35912857:PLDI(1584-1607)Online publication date: 6-Jun-2023
  • (2023)Symbolic Fixpoint Algorithms for Logical LTL Games2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE56229.2023.00212(698-709)Online publication date: 11-Sep-2023
  • (2023)Locksynth: Deriving Synchronization Code for Concurrent Data Structures with ASPTheory and Practice of Logic Programming10.1017/S1471068423000303(1-20)Online publication date: 1-Sep-2023
  • (2023)Compiler‐driven approach for automating nonblocking synchronization in concurrent data abstractionsConcurrency and Computation: Practice and Experience10.1002/cpe.793536:5Online publication date: 24-Oct-2023
  • (2022)Veracity: declarative multicore programming with commutativityProceedings of the ACM on Programming Languages10.1145/35633496:OOPSLA2(1726-1756)Online publication date: 31-Oct-2022
  • (2022)Automated Synthesis of AsynchronizationsStatic Analysis10.1007/978-3-031-22308-2_7(135-159)Online publication date: 2-Dec-2022
  • (2020)Feedback-driven semi-supervised synthesis of program transformationsProceedings of the ACM on Programming Languages10.1145/34282874:OOPSLA(1-30)Online publication date: 13-Nov-2020
  • (2020)Interactive debugging of concurrent programs under relaxed memory modelsProceedings of the 18th ACM/IEEE International Symposium on Code Generation and Optimization10.1145/3368826.3377910(68-80)Online publication date: 22-Feb-2020
  • (2020)CrEStO: A Tool for Synthesizing Stateful Priorities2020 16th European Dependable Computing Conference (EDCC)10.1109/EDCC51268.2020.00031(143-146)Online publication date: Sep-2020
  • 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