{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,9,4]],"date-time":"2023-09-04T22:35:30Z","timestamp":1693866930236},"reference-count":30,"publisher":"Elsevier BV","issue":"2-3","license":[{"start":{"date-parts":[[2003,5,1]],"date-time":"2003-05-01T00:00:00Z","timestamp":1051747200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2013,8,22]],"date-time":"2013-08-22T00:00:00Z","timestamp":1377129600000},"content-version":"vor","delay-in-days":3766,"URL":"https:\/\/www.elsevier.com\/open-access\/userlicense\/1.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Science of Computer Programming"],"published-print":{"date-parts":[[2003,5]]},"DOI":"10.1016\/s0167-6423(02)00129-6","type":"journal-article","created":{"date-parts":[[2003,3,25]],"date-time":"2003-03-25T16:44:35Z","timestamp":1048610675000},"page":"91-120","source":"Crossref","is-referenced-by-count":15,"title":["Comprehensive synchronization elimination for Java"],"prefix":"10.1016","volume":"47","author":[{"given":"Jonathan","family":"Aldrich","sequence":"first","affiliation":[]},{"given":"Emin","family":"G\u00fcn Sirer","sequence":"additional","affiliation":[]},{"given":"Craig","family":"Chambers","sequence":"additional","affiliation":[]},{"given":"Susan J.","family":"Eggers","sequence":"additional","affiliation":[]}],"member":"78","reference":[{"key":"10.1016\/S0167-6423(02)00129-6_BIB1","series-title":"Proc. 14th Conf. Object-Oriented Programming Systems, Languages, and Applications","article-title":"An efficient meta-lock for implementing ubiquitous synchronization","author":"Agesen","year":"1999"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB2","series-title":"Proc. 6th Internat. Static Analysis Symposium","article-title":"Static analyses for eliminating unnecessary synchronization from Java programs","author":"Aldrich","year":"1999"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB3","series-title":"Proc. SIGPLAN 1998 Conf. on Programming Language Design and Implementation","article-title":"Thin locks","author":"Bacon","year":"1998"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB4","series-title":"Proc. 14th Conf. on Object-Oriented Programming Systems, Languages, and Applications","article-title":"Escape analysis for object-oriented languages. Application to Java","author":"Blanchet","year":"1999"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB5","series-title":"Proc. 14th Conf. on Object-Oriented Programming Systems, Languages, and Applications","article-title":"Removing unnecessary synchronization in Java","author":"Bogda","year":"1999"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB6","series-title":"Proc. 14th Conf. on Object-Oriented Programming Systems, Languages, and Applications","article-title":"Escape analysis for Java","author":"Choi","year":"1999"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB7","doi-asserted-by":"crossref","unstructured":"J. Corbett, Using shape analysis to reduce finite-state models of concurrent Java programs, in: Proc. Internat. Symp. on Software Testing and Analysis, March 1998, A more recent version is University of Hawaii ICS-TR-98-20, available at http:\/\/www.ics.hawaii.edu\/~corbett\/pubs.html.","DOI":"10.1145\/271771.271778"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB8","series-title":"Proc. 11th Conf. on Object-Oriented Programming Systems, Languages, and Applications","article-title":"Vortex","author":"Dean","year":"1996"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB9","unstructured":"D.L. Detlefs, K. Rustan M. Leino, G. Nelson, J.B. Saxe, Extended static checking, Compaq SRC Research Report No. 159, 1998."},{"issue":"2","key":"10.1016\/S0167-6423(02)00129-6_BIB10","doi-asserted-by":"crossref","first-page":"218","DOI":"10.1006\/jpdc.1998.1441","article-title":"Lock coarsening","volume":"49","author":"Diniz","year":"1998","journal-title":"J. Parallel Distribut. Comput."},{"key":"10.1016\/S0167-6423(02)00129-6_BIB11","unstructured":"R. Fitzgerald, T.B. Knoblock, E. Ruf, B. Steensgaard, D. Tarditi, Marmot: an optimizing compiler for Java, Microsoft Technical Report, November 1998."},{"key":"10.1016\/S0167-6423(02)00129-6_BIB12","series-title":"The Java Language Specification","author":"Gosling","year":"1996"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB13","series-title":"Proc. 12th Conf. on Object-Oriented Programming Systems, Languages, and Applications","article-title":"Call graph construction in object-oriented languages","author":"Grove","year":"1997"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB14","series-title":"Modula-3","author":"Harbison","year":"1992"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB15","series-title":"Proc. 1999 ACM Java Grande Conference","article-title":"Performance limitations of the Java core libraries","author":"Heydon","year":"1999"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB16","series-title":"Internat. Conf. on Parallel Architecture and Compilation Techniques","article-title":"Static analysis of barrier synchronization in explicitly parallel programs","author":"Jeremiassen","year":"1994"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB17","doi-asserted-by":"crossref","unstructured":"A. Krall, M. Probst, Monitors and exceptions: how to implement Java efficiently, ACM 1998 Workshop on Java for High-Performance Network Computing, 1998.","DOI":"10.1002\/(SICI)1096-9128(199809\/11)10:11\/13<837::AID-CPE384>3.0.CO;2-7"},{"issue":"2","key":"10.1016\/S0167-6423(02)00129-6_BIB18","doi-asserted-by":"crossref","first-page":"105","DOI":"10.1145\/358818.358824","article-title":"Experience with processes and monitors in Mesa","volume":"23","author":"Lampson","year":"1980","journal-title":"Commun. ACM"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB19","series-title":"Proc. 6th Internat. Static Analysis Symposium","article-title":"On the complexity analysis of static analyses","author":"McAllester","year":"1999"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB20","series-title":"Proc. 7th European Software Engineering Conf. and 7th Internat. Symp. on Foundations of Software Engineering","article-title":"An efficient algorithm for computing MHP information for concurrent Java programs","author":"Naumovich","year":"1999"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB21","series-title":"Proc. 14th Conf. Object-Oriented Programming Systems, Languages, and Applications","article-title":"A study of locking objects with bimodal fields","author":"Onodera","year":"1999"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB22","unstructured":"J. Plevyak, Optimization of object-oriented and concurrent programs, Ph.D. Thesis, University of Illinois at Urbana-Champaign, 1996."},{"key":"10.1016\/S0167-6423(02)00129-6_BIB23","series-title":"Proc. 22nd ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages","article-title":"Obtaining sequential efficiency for concurrent object-oriented languages","author":"Plevyak","year":"1995"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB24","series-title":"Proc. Java Grande Conference","article-title":"Fixing the Java memory model","author":"Pugh","year":"1999"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB25","series-title":"Proc. SIGPLAN 2000 Conf. on Programming Language Design and Implementation","article-title":"Effective synchronization removal for Java","author":"Ruf","year":"2000"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB26","series-title":"Proc. SIGPLAN 1999 Conf. on Programming Language Design and Implementation","article-title":"Pointer analysis for multithreaded programs","author":"Rugina","year":"1999"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB27","series-title":"Proc. SIGPLAN 1988 Conf. on Programming Language Design and Implementation","article-title":"Control-Flow analysis in Scheme","author":"Shivers","year":"1988"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB28","doi-asserted-by":"crossref","unstructured":"S. Singhal, B. Nguyen, R. Redpath, M. Fraenkel, J. Nguyen, Building high-performance applications and services in Java: an experiential study, IBM T.J. Watson Research Center white paper, available at http:\/\/www-106.ibm.com\/developerworks\/library\/javahipr\/javahipr.html, July 1997.","DOI":"10.1145\/274567.274571"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB29","series-title":"Proc. 17th ACM Symp. on Operating Systems Principles","article-title":"Design and implementation of a distributed virtual machine for networked computers","author":"Sirer","year":"1999"},{"key":"10.1016\/S0167-6423(02)00129-6_BIB30","series-title":"Proc. 14th Conf. Object-Oriented Programming Systems, Languages, and Applications","article-title":"Compositional pointer and escape analysis for Java programs","author":"Whaley","year":"1999"}],"container-title":["Science of Computer Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0167642302001296?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0167642302001296?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2020,3,12]],"date-time":"2020-03-12T08:07:16Z","timestamp":1584000436000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S0167642302001296"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2003,5]]},"references-count":30,"journal-issue":{"issue":"2-3","published-print":{"date-parts":[[2003,5]]}},"alternative-id":["S0167642302001296"],"URL":"https:\/\/doi.org\/10.1016\/s0167-6423(02)00129-6","relation":{},"ISSN":["0167-6423"],"issn-type":[{"value":"0167-6423","type":"print"}],"subject":[],"published":{"date-parts":[[2003,5]]}}}