{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,12]],"date-time":"2026-01-12T23:09:15Z","timestamp":1768259355687,"version":"3.49.0"},"publisher-location":"Berlin, Heidelberg","reference-count":21,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"value":"9783540665380","type":"print"},{"value":"9783540481669","type":"electronic"}],"license":[{"start":{"date-parts":[[1999,1,1]],"date-time":"1999-01-01T00:00:00Z","timestamp":915148800000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[1999]]},"DOI":"10.1007\/3-540-48166-4_21","type":"book-chapter","created":{"date-parts":[[2007,8,8]],"date-time":"2007-08-08T20:59:20Z","timestamp":1186606760000},"page":"338-354","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":27,"title":["An Efficient Algorithm for Computing MHP Information for Concurrent Java Programs"],"prefix":"10.1007","author":[{"given":"Gleb","family":"Naumovich","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"George S.","family":"Avrunin","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Lori A.","family":"Clarke","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[1999,8,27]]},"reference":[{"key":"21_CR1","unstructured":"http:\/\/vislab-www.nps.navy.mil\/~java\/course\/sourcecode\n\n."},{"key":"21_CR2","unstructured":"http:\/\/www.hensa.ac.uk\/parallel\/groups\/wotug\/java\/applets\n\n."},{"key":"21_CR3","unstructured":"http:\/\/www.kai.com\/assurej\n\n."},{"key":"21_CR4","unstructured":"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\u2013111, Jan. 1989."},{"key":"21_CR5","doi-asserted-by":"crossref","unstructured":"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\u201310, Mar. 1998.","DOI":"10.1145\/271771.271778"},{"key":"21_CR6","doi-asserted-by":"crossref","unstructured":"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 Verification, pages 36\u201348, Oct. 1991.","DOI":"10.1145\/120807.120811"},{"key":"21_CR7","volume-title":"Flow Analysis of Computer Programs","author":"M. Hecht","year":"1977","unstructured":"M. Hecht. Flow Analysis of Computer Programs. North-Holland, New York, 1977."},{"key":"21_CR8","doi-asserted-by":"crossref","unstructured":"S. Horwitz, T. Reps, and M. Sagiv. Demand interprocedural dataflowanalysis. In Proceedings of the Third ACM SIGSOFT Symposium on the Foundations of Software Engineering, pages 104\u2013115, Oct. 1995.","DOI":"10.1145\/222132.222146"},{"key":"21_CR9","doi-asserted-by":"crossref","unstructured":"J. Krinke. Static slicing of threaded programs. In Proceedings of theACMSIGPLAN\/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, pages 35\u201341, June 1998.","DOI":"10.1145\/277631.277638"},{"key":"21_CR10","doi-asserted-by":"crossref","unstructured":"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\u2019 91), pages 93\u2013103, Jan. 1991.","DOI":"10.1145\/99583.99599"},{"key":"21_CR11","volume-title":"Concurrent Programming in Java","author":"D. Lea","year":"1997","unstructured":"D. Lea. Concurrent Programming in Java. Addison-Wesley, Reading, MA, 1997."},{"key":"21_CR12","unstructured":"D. Lea. Concurrent programming in Java. Design principles and patterns, online supplement. \nhttp:\/\/gee.cs.oswego.edu\/dl\/cpj\/index.html\n\n, Sept. 1998."},{"key":"21_CR13","doi-asserted-by":"crossref","unstructured":"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\u201352, May 1989.","DOI":"10.1145\/74587.74592"},{"key":"21_CR14","doi-asserted-by":"crossref","unstructured":"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\u2013107, May 1991.","DOI":"10.1145\/127695.122768"},{"key":"21_CR15","doi-asserted-by":"crossref","unstructured":"S. Masticola and B. Ryder. Non-concurrency analysis. In Proceedings of the Fourth ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming, pages 129\u2013138, May 1993.","DOI":"10.1145\/173284.155346"},{"issue":"5","key":"21_CR16","doi-asserted-by":"publisher","first-page":"777","DOI":"10.1145\/213978.213989","volume":"17","author":"S. P. Masticola","year":"1995","unstructured":"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\u2013803, September 1995.","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"21_CR17","doi-asserted-by":"crossref","unstructured":"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 ACMSIGSOFT Symposium on the Foundations of Software Engineering, pages 24\u201334, Nov. 1998.","DOI":"10.1145\/291252.288213"},{"key":"21_CR18","volume-title":"Technical Report 98-44","author":"G. Naumovich","year":"1998","unstructured":"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. \nhttp:\/\/laser.cs.umass.edu\/abstracts\/98-044.html\n\n."},{"key":"21_CR19","doi-asserted-by":"crossref","unstructured":"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 Software Engineering, pages 399\u2013410, May 1999.","DOI":"10.1145\/302405.302663"},{"key":"21_CR20","doi-asserted-by":"crossref","unstructured":"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\u2013340, Oct. 1994.","DOI":"10.1145\/191081.191130"},{"key":"21_CR21","doi-asserted-by":"publisher","first-page":"57","DOI":"10.1007\/BF00263928","volume":"19","author":"R. N. Taylor","year":"1983","unstructured":"R. N. Taylor. Complexity of analyzing the synchronization structure of concurrent programs. Acta Informatica, 19:57\u201384, 1983.","journal-title":"Acta Informatica"}],"container-title":["Lecture Notes in Computer Science","Software Engineering \u2014 ESEC\/FSE \u201999"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/3-540-48166-4_21","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2020,4,6]],"date-time":"2020-04-06T00:05:55Z","timestamp":1586131555000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/3-540-48166-4_21"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1999]]},"ISBN":["9783540665380","9783540481669"],"references-count":21,"URL":"https:\/\/doi.org\/10.1007\/3-540-48166-4_21","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[1999]]},"assertion":[{"value":"27 August 1999","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}}]}}