{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2022,4,3]],"date-time":"2022-04-03T16:12:20Z","timestamp":1649002340655},"reference-count":46,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2013,1,1]],"date-time":"2013-01-01T00:00:00Z","timestamp":1356998400000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Sci. China Inf. Sci."],"published-print":{"date-parts":[[2013,1]]},"DOI":"10.1007\/s11432-012-4743-z","type":"journal-article","created":{"date-parts":[[2013,1,21]],"date-time":"2013-01-21T14:26:28Z","timestamp":1358778388000},"page":"1-20","source":"Crossref","is-referenced-by-count":4,"title":["Finding shrink critical section refactoring opportunities for the evolution of concurrent code in trustworthy software"],"prefix":"10.1007","volume":"56","author":[{"given":"Ju","family":"Qian","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Lin","family":"Chen","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"BaoWen","family":"Xu","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2013,1,22]]},"reference":[{"key":"4743_CR1","doi-asserted-by":"crossref","unstructured":"Aldrich J, Chambers C, Sirer E G, et al. Static analyses for eliminating unnecessary synchronization from Java programs. In: Proceedings of the Static Analysis Symposium (SAS), Venezia, 1999. 19\u201338","DOI":"10.1007\/3-540-48294-6_2"},{"key":"4743_CR2","unstructured":"Blanchet B. Escape analysis for object oriented languages: application to Java. In: Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Colorado, 1999. 20\u201334"},{"key":"4743_CR3","doi-asserted-by":"crossref","unstructured":"Bogda J, H\u00f6lzle U. Removing unnecessary synchronization in Java. In: Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Colorado, 1999. 35\u201346","DOI":"10.1145\/320385.320388"},{"key":"4743_CR4","doi-asserted-by":"crossref","unstructured":"Choi J-D, Gupta M, Serrano M, et al. Escape analysis for Java. In: Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Colorado, 1999. 1\u201319","DOI":"10.1145\/320384.320386"},{"key":"4743_CR5","doi-asserted-by":"crossref","unstructured":"Kotzmann T, Mossenbock H. Escape analysis in the context of dynamic compilation and deoptimization. In: Proceedings of the 1st ACM\/USENIX International Conference on Virtual Execution Environments (VEE), Chicago, 2005. 111\u2013120","DOI":"10.1145\/1064979.1064996"},{"key":"4743_CR6","doi-asserted-by":"crossref","unstructured":"Lee K, Fang X, Midkiff S P. Practical escape analyses: how good are they? In: Proceedings of the 3rd International Conference on Virtual Execution Environments (VEE), San Diego, 2007. 180\u2013190","DOI":"10.1145\/1254810.1254836"},{"key":"4743_CR7","doi-asserted-by":"crossref","unstructured":"Ruf E. Effective synchronization removal for Java. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Berlin, 2002. 208\u2013218","DOI":"10.1145\/358438.349327"},{"key":"4743_CR8","doi-asserted-by":"crossref","unstructured":"S\u01cealcianu A, Rinard M. Pointer and escape analysis for multithreaded programs. In: Proceedings of the 8th ACM SIGPLAN Symposium on Principles and Practices of Parallel Programming (PPoPP), Snowbird, 2001. 12\u201323","DOI":"10.1145\/568014.379553"},{"key":"4743_CR9","doi-asserted-by":"crossref","unstructured":"Stoodley M, Sundaresan V. Automatically reducing repetitive synchronization with a just-in-time compiler for Java. In: Proceedings of the International Symposium on Code Generation and Optimization (CGO), San Jose, 2005. 27\u201336","DOI":"10.1109\/CGO.2005.7"},{"key":"4743_CR10","doi-asserted-by":"crossref","unstructured":"Whaley J, Rinard M. Compositional pointer and escape analysis for Java programs. In: Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Colorado, 1999. 187\u2013206","DOI":"10.1145\/320385.320400"},{"key":"4743_CR11","unstructured":"Wong C-L. Thread escape analysis for a memory consistency-aware compiler. Dissertation for the Doctoral Degree. University of Illinois at Urbana-Champaign, 2005"},{"key":"4743_CR12","unstructured":"Goetz B, Peierls T, Bloch J, et al. Java Concurrency in Practice. Addison Wesley Professional, 2006"},{"key":"4743_CR13","doi-asserted-by":"crossref","first-page":"384","DOI":"10.1016\/j.scico.2005.03.002","volume":"58","author":"A. Greenhouse","year":"2005","unstructured":"Greenhouse A, Halloran T J, Scherlis W L. Observations on the assured evolution of concurrent Java programs. Sci Comput Program, 2005, 58: 384\u2013411","journal-title":"Sci Comput Program"},{"key":"4743_CR14","unstructured":"Lea D. Concurrent Programming in Java: Design Principles and Patterns, 2nd ed. Addision-Wesley, 1999"},{"key":"4743_CR15","unstructured":"Dig D, Tarce M, Radoi C, et al. Relooper: refactoring for loop parallelism in Java. In: Proceeding of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems, Languages, and Applications (OOPSLA), Orlando, 2009. 793\u2013794"},{"key":"4743_CR16","doi-asserted-by":"crossref","unstructured":"Dig D, Marrero J, Ernst M D. Refactoring sequential Java code for concurrency via concurrent libraries. In: Proceedings of the 31st IEEE International Conference on Software Engineering (ICSE), Vancouver, 2009. 397\u2013407","DOI":"10.1109\/ICSE.2009.5070539"},{"key":"4743_CR17","unstructured":"Sixth and Red River Software. LockSmith: Powerful concurrency-oriented refactorings for IntelliJ IDEA. http:\/\/www.sixthandredriver.com\/locksmith.html"},{"key":"4743_CR18","doi-asserted-by":"crossref","unstructured":"Sch\u00e4fer M, Sridharan M, Dolby J, et al. Refactoring Java programs for flexible locking. In: Proceedings of the 33rd IEEE International Conference on Software Engineering (ICSE), Waikiki, Honolulu, HI, 2011. 71\u201380","DOI":"10.1145\/1985793.1985804"},{"key":"4743_CR19","unstructured":"Naik M. Effective static race detection for Java. Dissertation for the Doctoral Degree. Stanford University, 2008"},{"key":"4743_CR20","doi-asserted-by":"crossref","unstructured":"Prabhu P, Shankar P. Field flow sensitive pointer and escape analysis for Java using heap array SSA. In: Proceedings of the Static Analysis Symposium (SAS), Valencia, 2008. 110\u2013127","DOI":"10.1007\/978-3-540-69166-2_8"},{"key":"4743_CR21","doi-asserted-by":"crossref","unstructured":"Vivien F, Rinard M. Incrementalized pointer and escape analysis. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Snowbird, 2001. 35\u201346","DOI":"10.1145\/381694.378804"},{"key":"4743_CR22","unstructured":"Vall\u00e9e-Rai R, Hendren L, Sundaresan V, et al. Soot-a Java bytecode optimization framework. In: Proceedings of the Conference of the Centre for Advanced Studies on Collaborative Research (CASCON), Mississauga, 1999. 125\u2013135"},{"key":"4743_CR23","unstructured":"Fowler M. Refactoring: Improving the Design of Existing Programs. Addison-Wesley, 1999."},{"key":"4743_CR24","doi-asserted-by":"crossref","unstructured":"Hind M. Pointer analysis: Haven\u2019t we solved this problem yet? In: Proceedings of the ACM Workshop on Program Analysis for Software Tools and Engineering (PASTE), Snowbird, 2001. 54\u201361","DOI":"10.1145\/379605.379665"},{"key":"4743_CR25","doi-asserted-by":"crossref","unstructured":"Chatterjee R, Ryder B G, Landi W A. Relevant context inference. In: Proceedings of the 26th ACM SIGPLANSIGACT Symposium on Principles of Programming Languages (POPL), San Antonio, 1999. 133\u2013146","DOI":"10.1145\/292540.292554"},{"key":"4743_CR26","unstructured":"Cheng B C, Hwu W W. Modular interprocedural pointer analysis using access paths: design, implementation, and evaluation. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Britith Columbia, 2000. 57\u201369"},{"key":"4743_CR27","doi-asserted-by":"crossref","unstructured":"Diwan A, McKinley K S, Eliot J, et al. Type-based alias analysis. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Montreal, 1998. 106\u2013117","DOI":"10.1145\/277652.277670"},{"key":"4743_CR28","doi-asserted-by":"crossref","unstructured":"Cooper K D, Kennedy K. Interprocedural side-effect analysis in linear time. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Atlanta, 1988. 57\u201366","DOI":"10.1145\/960116.53996"},{"key":"4743_CR29","doi-asserted-by":"crossref","unstructured":"Gay D, Steensgaard B. Fast escape analysis and stack allocation for object-based programs. In: Proceedings of the 9th International Conference on Compiler Construction (CC), Paphos, 2000. 82\u201393","DOI":"10.1007\/3-540-46423-9_6"},{"key":"4743_CR30","unstructured":"Muchnick S S. Advanced Compiler Design and Implementation. Academic Press, 1997"},{"key":"4743_CR31","doi-asserted-by":"crossref","first-page":"45","DOI":"10.1145\/596992.597003","volume":"37","author":"Z. Chen","year":"2002","unstructured":"Chen Z, Xu B, Zhao J. An overview of methods for dependence analysis of concurrent programs. ACM Sigplan Not, 2002, 37: 45\u201352","journal-title":"ACM Sigplan Not"},{"key":"4743_CR32","doi-asserted-by":"crossref","unstructured":"Manson J, Pugh W, Adve S V. The Java memory model. In: Proceedings of the 32nd ACM Symposium on Principles of Programming Languages (POPL), Long Beach, 2005. 378\u2013391","DOI":"10.1145\/1047659.1040336"},{"key":"4743_CR33","unstructured":"Gosling J, Joy B, Steele G, et al. JavaTMLanguage Specification, 7th ed. Oracle, 2011"},{"key":"4743_CR34","unstructured":"Eclipse Foundation, Inc. Eclipse Java development tools (JDT). http:\/\/www.eclipse.org\/jdt\/"},{"key":"4743_CR35","unstructured":"Blackburn S M, Garner R, Hoffman C, et al. The DaCapo benchmarks: Java benchmarking development and analysis. In: Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Portland, 2006. 169\u2013190"},{"key":"4743_CR36","doi-asserted-by":"crossref","unstructured":"Diniz P, Rinard M. Synchronization transformations for parallel computing. In: Proceedings of the ACM Symposium on Principle of Programming Languages (POPL), Paris, 1997. 187\u2013200","DOI":"10.1145\/263699.263718"},{"key":"4743_CR37","doi-asserted-by":"crossref","first-page":"218","DOI":"10.1006\/jpdc.1998.1441","volume":"49","author":"P. Diniz","year":"1998","unstructured":"Diniz P, Rinard M. Lock coarsening: eliminating lock overhead in automatically parallelized object-based programs. J Parallel Distrib Comput, 1998, 49: 218\u2013244","journal-title":"J Parallel Distrib Comput"},{"key":"4743_CR38","doi-asserted-by":"crossref","unstructured":"Sch\u00e4fer M, Dolby J, Sridharan M, et al. Correct refactoring of concurrent java code. In: Proceedings of the European Conference on Object-Oriented Programming (ECOOP), Maribor, 2010. 225\u2013249","DOI":"10.1007\/978-3-642-14107-2_11"},{"key":"4743_CR39","doi-asserted-by":"crossref","unstructured":"Markstrum S, Fuhrer R, Millstein T. Towards concurrency refactoring for X10. In: Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), Raleigh, 2009. 303\u2013304","DOI":"10.1145\/1594835.1504226"},{"key":"4743_CR40","doi-asserted-by":"crossref","unstructured":"Wloka J, Sridharan M, Tip F. Refactoring for reentrancy. In: Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), Amsterdam, 2009. 173\u2013182","DOI":"10.1145\/1595696.1595723"},{"key":"4743_CR41","doi-asserted-by":"crossref","unstructured":"Damevski K, Muralimanohar M. A refactoring tool to extract GPU kernels. In: Proceedings of the 4th Workshop on Refactoring Tools (WRT), Waikiki, Honolulu, HI, 2011. 29\u201332","DOI":"10.1145\/1984732.1984739"},{"key":"4743_CR42","doi-asserted-by":"crossref","unstructured":"Brown C, Hammond K, Danelutto M, et al. A language-independent parallel refactoring framework. In: Proceedings of the 5th ACM Workshop on Refactoring Tools (WRT), Rapperswil, 2012. 54\u201358","DOI":"10.1145\/2328876.2328884"},{"key":"4743_CR43","doi-asserted-by":"crossref","unstructured":"Cherem S, Rugina R. A practical escape and effect analysis for building lightweight method summaries. In: Proceedings of the International Conference on Compiler Construction (CC), Braga, 2007. 172\u2013186","DOI":"10.1007\/978-3-540-71229-9_12"},{"key":"4743_CR44","doi-asserted-by":"crossref","unstructured":"Edvinsson M, Lundberg J, Lowe W. Parallel reachability and escape analyses. In: Proceedings of the 10th IEEE International Workshop on Source Code Analysis and Manipulation (SCAM), Timi\u015foara, 2010. 125\u2013134","DOI":"10.1109\/SCAM.2010.10"},{"key":"4743_CR45","doi-asserted-by":"crossref","unstructured":"Beers M Q, Stork C H, Franz M. Efficiently verifiable escape analysis. In: Proceedings of the European Conference on Object-Oriented Programming (ECOOP), Oslo, 2004. 60\u201381","DOI":"10.1007\/978-3-540-24851-4_4"},{"key":"4743_CR46","doi-asserted-by":"crossref","unstructured":"von Praun C, Gross T R. Static conflict analysis for multi-threaded object oriented programs. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), San Diego, 2003. 115\u2013128","DOI":"10.1145\/780822.781145"}],"container-title":["Science China Information Sciences"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s11432-012-4743-z.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s11432-012-4743-z\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s11432-012-4743-z","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,7,8]],"date-time":"2019-07-08T15:55:55Z","timestamp":1562601355000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s11432-012-4743-z"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2013,1]]},"references-count":46,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2013,1]]}},"alternative-id":["4743"],"URL":"https:\/\/doi.org\/10.1007\/s11432-012-4743-z","relation":{},"ISSN":["1674-733X","1869-1919"],"issn-type":[{"value":"1674-733X","type":"print"},{"value":"1869-1919","type":"electronic"}],"subject":[],"published":{"date-parts":[[2013,1]]}}}