[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.5555/318773.319252acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article
Free access

An efficient algorithm for computing MHP information for concurrent Java programs

Published: 01 October 1999 Publication History

Abstract

Information about which statements in a concurrent program may happen in parallel (MHP) has a number of important applications. It can be used in program optimization, debugging, program understanding tools, improving the accuracy of data flow approaches, and detecting synchronization anomalies, such as data races. In this paper we propose a data flow algorithm for computing a conservative estimate of the MHP information for Java programs that has a worst-case time bound that is cubic in the size of the program. We present a preliminary experimental comparison between our algorithm and a reachability analysis algorithm that determines the “ideal” static MHP information for concurrent Java programs. This initial experiment indicates that our data flow algorithm precisely computed the ideal MHP information in the vast majority of cases we examined. In the two out of 29 cases where the MHP algorithm turned out to be less than ideally precise, the number of spurious pairs was small compared to the total number of ideal MHP pairs.

References

[1]
http://vislab-www.nps.navy.mil/ javalcourselsourcecode.]]
[2]
http://www.hensa.ac.uk/parallellgroups/wotug/java/applets.]]
[3]
http://www.kai.com/assurej.]]
[4]
D. Callahan and J. Subhlok. Static analysis of low-level synchronization. In Proceedings of the ACM SIGPLAN and SIGOPS Workshop on Parallel and Distributed Debugging, number 1, pages 100-l 11, Jan. 1989.]]
[5]
J. C. Corbett. Constructing compact models of concurrent Java programs. In Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA-98/, pages 1-10, Mar. 1998.]]
[6]
E. Duesterwald and M. L. Soffa. Concurrency analysis in the presence of procedures using a data flow framework. In Proceedings of the ACM SIGSOFT Fourth Workshop on Software Testing, Analysis, and VerQkation, pages 36-48, Oct. 1991.]]
[7]
M. Hecht. Flow Analysis of Computer Programs. North-Holland, New York, 1977.]]
[8]
S. Horwitz, T. Reps, and M. Sagiv. Demand interprocedural dataflow analysis. In Proceedings of the Third ACM SIGSOF'T Symposium on the Foundations of Software Engineering, pages 104-l 15, Oct. 1995.]]
[9]
J. Krinke. Static slicing of threaded programs. In Proceedings of the ACM SIG- PLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, pages 35-41, June 1998.]]
[10]
W. Landi and B. Ryder. Pointer-induced aliasing: A problem taxonomy. In Conference Record of the 18th Annual ACM Symposium on Principles of Programming Languages (POPL '911, pages 93-103, Jan. 1991.]]
[11]
D. Lea. Concurrent Programming in Java. Addison-Wesley, Reading, MA, 1997.]]
[12]
D. Lea. Concurrent programming in Java. Design principles and patterns, online supplement. http://gee.cs.oswego.edu/dl/cpj/index.htmi, Sept. 1998.]]
[13]
D. L. Long and L. A. Clarke. Task interaction graphs for concurrency analysis. In Proceedings of the 11th International Conference on Software Engineering, pages 44-52, May 1989.]]
[14]
S. Masticola and B. Ryder. A model of Ada programs for static deadlock detection in polynomial time. In Proceedings of the Workshop on Parallel and Distributed Debugging, pages 97-107, May 1991.]]
[15]
S. Masticola and B. Ryder. Non-concurrency analysis. In Proceedings of the Fourth ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming, pages 129-138, May 1993.]]
[16]
S. P. Masticola, T. J. Marlowe, and B. G. Ryder. Lattice frameworks for multisource and bidirectional data flow problems. ACM Transactions on Programming Languages and Systems, 17(5):777-803, September 1995.]]
[17]
G. Naumovich and G. S. Avrunin. A conservative data flow algorithm for detecting all pairs of statements that may happen in parallel. In Proceedings of the Sixth ACM SIGSOFT Symposium on the Foundations of Sof?ware Engineering, pages 24-34, Nov. 1998.]]
[18]
G. Naumovich, G. S. Avrunin, and L. A. Clarke. An efficient algorithm for computing MHP information for concurrent Java programs. Technical Report 98-44, University of Massachusetts, Amherst, Oct. 1998. http://laser.cs.umass.edu/abstracts/98-044.html.]]
[19]
G. Naumovich, G. S. Avrunin, and L. A. Clarke. Data flow analysis for checking properties of concurrent Java programs. In Proceedings of the 21st International Conference on Sofmare Engineering, pages 399-410, May 1999.]]
[20]
J. Plevyak and A. A. Chien. Precise concrete type inference for object-oriented languages. In ACM SIGPLAN Proceedings of the 1994 Conference on Object-Oriented Programming, pages 324-340, Oct. 1994.]]
[21]
R. N. Taylor. Complexity of analyzing the synchronization structure of concurrent programs. Acta Informatica, 19:57-84, 1983.]]

Cited By

View all
  • (2019)PYEACM Transactions on Programming Languages and Systems10.1145/333779441:3(1-37)Online publication date: 2-Jul-2019
  • (2018)nAdroid: statically detecting ordering violations in Android applicationsProceedings of the 2018 International Symposium on Code Generation and Optimization10.1145/3168829(62-74)Online publication date: 24-Feb-2018
  • (2018)May-happen-in-parallel analysis with static vector clocksProceedings of the 2018 International Symposium on Code Generation and Optimization10.1145/3168813(228-240)Online publication date: 24-Feb-2018
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ESEC/FSE-7: Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
October 1999
529 pages
ISBN:3540665382

Sponsors

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 01 October 1999

Check for updates

Qualifiers

  • Article

Conference

SOFT'99/ESEC/FSE'99
Sponsor:

Acceptance Rates

Overall Acceptance Rate 112 of 543 submissions, 21%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)76
  • Downloads (Last 6 weeks)8
Reflects downloads up to 18 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2019)PYEACM Transactions on Programming Languages and Systems10.1145/333779441:3(1-37)Online publication date: 2-Jul-2019
  • (2018)nAdroid: statically detecting ordering violations in Android applicationsProceedings of the 2018 International Symposium on Code Generation and Optimization10.1145/3168829(62-74)Online publication date: 24-Feb-2018
  • (2018)May-happen-in-parallel analysis with static vector clocksProceedings of the 2018 International Symposium on Code Generation and Optimization10.1145/3168813(228-240)Online publication date: 24-Feb-2018
  • (2016)Improved MHP AnalysisProceedings of the 25th International Conference on Compiler Construction10.1145/2892208.2897144(207-217)Online publication date: 17-Mar-2016
  • (2016)Scalable thread sharing analysisProceedings of the 38th International Conference on Software Engineering10.1145/2884781.2884811(1097-1108)Online publication date: 14-May-2016
  • (2016)Accelerating Dynamic Data Race Detection Using Static Thread Interference AnalysisProceedings of the 7th International Workshop on Programming Models and Applications for Multicores and Manycores10.1145/2883404.2883405(30-39)Online publication date: 12-Mar-2016
  • (2014)Compiler Optimization for Reducing Leakage Power in Multithread BSP ProgramsACM Transactions on Design Automation of Electronic Systems10.1145/266811920:1(1-34)Online publication date: 18-Nov-2014
  • (2014)Approximating happens-before order: interplay between static analysis and state space traversalProceedings of the 2014 International SPIN Symposium on Model Checking of Software10.1145/2632362.2632365(1-10)Online publication date: 21-Jul-2014
  • (2013)Input-covering schedules for multithreaded programsACM SIGPLAN Notices10.1145/2544173.250950848:10(677-692)Online publication date: 29-Oct-2013
  • (2013)Input-covering schedules for multithreaded programsProceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications10.1145/2509136.2509508(677-692)Online publication date: 29-Oct-2013
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media