• Home
  • Search
  • Summarizing procedures in concurrent programs
  • Open Access IconOpen Access
  • Cite Icon23
  • https://doi.org/10.1145/982962.964022Copy DOI Icon

Summarizing procedures in concurrent programs

Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

The ability to summarize procedures is fundamental to building scalable interprocedural analyses. For sequential programs, procedure summarization is well-understood and used routinely in a variety of compiler optimizations and software defect-detection tools. However, the benefit of summarization is not available to multithreaded programs, for which a clear notion of summaries has so far remained unarticulated in the research literature.In this paper, we present an intuitive and novel notion of procedure summaries for multithreaded programs. We also present a model checking algorithm for these programs that uses procedure summarization as an essential component. Our algorithm can also be viewed as a precise interprocedural dataflow analysis for multithreaded programs. Our method for procedure summarization is based on the insight that in well-synchronized programs, any computation of a thread can be viewed as a sequence of transactions, each of which appears to execute atomically to other threads. We summarize within each transaction; the summary of a procedure comprises the summaries of all transactions within the procedure. We leverage the theory of reduction [17] to infer boundaries of these transactions.The procedure summaries computed by our algorithm allow reuse of analysis results across different call sites in a multithreaded program, a benefit that has hitherto been available only to sequential programs. Although our algorithm is not guaranteed to terminate on multithreaded programs that use recursion (reachability analysis for multithreaded programs with recursive procedures is undecidable [18]), there is a large class of programs for which our algorithm does terminate. We give a formal characterization of this class, which includes programs that use shared variables, synchronization, and recursion.

Similar Papers
  • Conference Article
  • Citations5

<u>T</u>i<u>d</u>d<u>l</u>e

  • Jul 20, 2009
  • Caitlin Sadowski +1
  • Research Article
  • Citations168

Distributed Computing: Fundamentals, Simulations and Advanced Topics

  • Jan 03, 2001
  • Scalable Computing Practice and Experience
  • Marcin Paprzycki
  • Research Article
  • Citations13

Dead code elimination based pointer analysis for multithreaded programs

  • Feb 01, 2012
  • Journal of the Egyptian Mathematical Society
  • Mohamed A El-Zawawy
  • Conference Article
  • Citations14

Pointer analysis of multithreaded Java programs

  • Mar 09, 2003
  • Mangala Gowri Nanda +1
  • Conference Article
  • Citations21

Design of an Empirical Study for Comparing the Usability of Concurrent Programming Languages

  • Sep 01, 2011
  • Sebastian Nanz +3
  • Conference Article
  • Citations4

A learning system for the problem of mutual exclusion in multithreaded programming

  • Aug 30, 2004
  • E Yoshida +1
  • Conference Article

Towards automatic synthesis of software verification tools

  • Jul 20, 2011
  • Andrey Rybalchenko
  • Research Article
  • Citations5

Sound and precise analysis of parallel programs through schedule specialization

  • Jun 11, 2012
  • ACM SIGPLAN Notices
  • Jingyue Wu +4
  • Conference Article
  • Citations58

An Evaluation of Slicing Algorithms for Concurrent Programs

  • Sep 01, 2007
  • Dennis Giffhorn +1
  • PDF
  • Research Article
  • Citations6

Bisimulation for Secure Information Flow Analysis of Multi-Threaded Programs

  • Jun 17, 2019
  • Mathematical and Computational Applications
  • Ali A Noroozi +2
  • Research Article
  • Citations210

Reducing concurrent analysis under a context bound to sequential analysis

  • Jul 07, 2009
  • Formal Methods in System Design
  • Akash Lal +1
  • PDF
  • Research Article
  • Citations9

Plagiarism Detection of Multi-Threaded Programs via Siamese Neural Networks

  • Jan 01, 2020
  • IEEE Access
  • Zhenzhou Tian +4
  • Conference Article
  • Citations40

Parallel and distributed bounded model checking of multi-threaded programs

  • Feb 19, 2020
  • Omar Inverso +1
  • Research Article
  • Citations19

Pattern-Based Verification for Multithreaded Programs

  • Sep 15, 2014
  • ACM Transactions on Programming Languages and Systems
  • Javier Esparza +2
  • Research Article
  • Citations2

Refinement of structural heuristics for model checking of concurrent programs through data mining

  • Jun 18, 2016
  • Computer Languages, Systems & Structures
  • Reed Milewicz +1
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.