{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,5]],"date-time":"2024-09-05T23:24:16Z","timestamp":1725578656822},"publisher-location":"Berlin, Heidelberg","reference-count":36,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783642198601"},{"type":"electronic","value":"9783642198618"}],"license":[{"start":{"date-parts":[[2011,1,1]],"date-time":"2011-01-01T00:00:00Z","timestamp":1293840000000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2011]]},"DOI":"10.1007\/978-3-642-19861-8_7","type":"book-chapter","created":{"date-parts":[[2011,3,14]],"date-time":"2011-03-14T17:39:26Z","timestamp":1300124366000},"page":"104-123","source":"Crossref","is-referenced-by-count":17,"title":["JPure: A Modular Purity System for Java"],"prefix":"10.1007","author":[{"given":"David J.","family":"Pearce","sequence":"first","affiliation":[]}],"member":"297","reference":[{"key":"7_CR1","unstructured":"Barnett, M., Naumann, D.A., Schulte, W., Sun, Q.: 99.44% pure: Useful abstractions in specification. In: Proc. FTFJP, pp. 11\u201319 (2004)"},{"key":"7_CR2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"29","DOI":"10.1007\/978-3-540-93900-9_7","volume-title":"Verification, Model Checking, and Abstract Interpretation","author":"W.C. Benton","year":"2009","unstructured":"Benton, W.C., Fischer, C.N.: Mostly-functional behavior in Java programs. In: Jones, N.D., M\u00fcller-Olm, M. (eds.) VMCAI 2009. LNCS, vol.\u00a05403, pp. 29\u201343. Springer, Heidelberg (2009)"},{"key":"7_CR3","first-page":"217","volume-title":"ESEC\/SIGSOFT FSE","author":"K. Bierhoff","year":"2005","unstructured":"Bierhoff, K., Aldrich, J.: Lightweight object specification with typestates. In: ESEC\/SIGSOFT FSE, pp. 217\u2013226. ACM Press, New York (2005)"},{"key":"7_CR4","doi-asserted-by":"crossref","first-page":"213","DOI":"10.1145\/604131.604156","volume-title":"Proc. POPL","author":"C. Boyapati","year":"2003","unstructured":"Boyapati, C., Liskov, B., Shrira, L.: Ownership types for object encapsulation. In: Proc. POPL, pp. 213\u2013223. ACM Press, New York (2003)"},{"key":"7_CR5","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"26","DOI":"10.1007\/3-540-36384-X_6","volume-title":"Verification, Model Checking, and Abstract Interpretation","author":"N. Cata\u00f1o","year":"2002","unstructured":"Cata\u00f1o, N., Huisman, M.: CHASE: A static checker for JML\u2019s Assignable clause. In: Zuck, L.D., Attie, P.C., Cortesi, A., Mukhopadhyay, S. (eds.) VMCAI 2003. LNCS, vol.\u00a02575, pp. 26\u201340. Springer, Heidelberg (2002)"},{"key":"7_CR6","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"172","DOI":"10.1007\/978-3-540-71229-9_12","volume-title":"Compiler Construction","author":"S. Cherem","year":"2007","unstructured":"Cherem, S., Rugina, R.: A practical escape and effect analysis for building lightweight method summaries. In: Adsul, B., Vetta, A. (eds.) CC 2007. LNCS, vol.\u00a04420, pp. 172\u2013186. Springer, Heidelberg (2007)"},{"key":"7_CR7","first-page":"232","volume-title":"Proc. POPL","author":"J.-D. Choi","year":"1993","unstructured":"Choi, J.-D., Burke, M., Carini, P.: Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. In: Proc. POPL, pp. 232\u2013245. ACM Press, New York (1993)"},{"key":"7_CR8","doi-asserted-by":"crossref","first-page":"48","DOI":"10.1145\/286936.286947","volume-title":"Proc. OOPSLA","author":"D. Clarke","year":"1998","unstructured":"Clarke, D., Potter, J., Noble, J.: Ownership Types for Flexible Alias Protection. In: Proc. OOPSLA, pp. 48\u201364. ACM Press, New York (1998)"},{"issue":"11","key":"7_CR9","doi-asserted-by":"publisher","first-page":"1031","DOI":"10.1002\/(SICI)1096-9128(199711)9:11<1031::AID-CPE354>3.0.CO;2-O","volume":"9","author":"L.R. Clausen","year":"1997","unstructured":"Clausen, L.R.: A Java bytecode optimizer using side-effect analysis. Concurrency - Practice and Experience\u00a09(11), 1031\u20131045 (1997)","journal-title":"Concurrency - Practice and Experience"},{"key":"7_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"336","DOI":"10.1007\/978-3-540-71289-3_26","volume-title":"Fundamental Approaches to Software Engineering","author":"\u00c1. Darvas","year":"2007","unstructured":"Darvas, \u00c1., Leino, K.R.M.: Practical reasoning about invocations and implementations of pure methods. In: Dwyer, M.B., Lopes, A. (eds.) FASE 2007. LNCS, vol.\u00a04422, pp. 336\u2013351. Springer, Heidelberg (2007)"},{"key":"7_CR11","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"77","DOI":"10.1007\/3-540-49538-X_5","volume-title":"ECOOP \u201995 - Object-Oriented Programming","author":"J. Dean","year":"1995","unstructured":"Dean, J., Grove, D., Chambers, C.: Optimization of object-oriented programs using static class hierarchy analysis. In: Olthoff, W. (ed.) ECOOP 1995. LNCS, vol.\u00a0952, pp. 77\u2013101. Springer, Heidelberg (1995)"},{"key":"7_CR12","first-page":"161","volume-title":"Proc. CCS","author":"M. Finifter","year":"2008","unstructured":"Finifter, M., Mettler, A., Sastry, N., Wagner, D.: Verifiable functional purity in Java. In: Proc. CCS, pp. 161\u2013174. ACM Press, New York (2008)"},{"key":"7_CR13","doi-asserted-by":"crossref","first-page":"221","DOI":"10.1145\/1007512.1007543","volume-title":"Proc. ISSTA","author":"C. Flanagan","year":"2004","unstructured":"Flanagan, C., Freund, S.N., Qadeer, S.: Exploiting purity for atomicity. In: Proc. ISSTA, pp. 221\u2013231. ACM Press, New York (2004)"},{"key":"7_CR14","doi-asserted-by":"crossref","first-page":"234","DOI":"10.1145\/512529.512558","volume-title":"Proc. PLDI","author":"C. Flanagan","year":"2002","unstructured":"Flanagan, C., Leino, K.R.M., Lillibridge, M., Nelson, G., Saxe, J.B., Stata, R.: Extended static checking for Java. In: Proc. PLDI, pp. 234\u2013245. ACM Press, New York (2002)"},{"key":"7_CR15","doi-asserted-by":"crossref","unstructured":"Heydon, A., Levin, R., Yu, Y.: Caching function calls using precise dependencies. In: Proc. PLDI, pp. 311\u2013320 (2000)","DOI":"10.1145\/358438.349341"},{"key":"7_CR16","first-page":"97","volume-title":"Proc. OOPSLA","author":"R.L. Bocchino Jr.","year":"2009","unstructured":"Bocchino Jr., R.L., Adve, V.S., Dig, D., Adve, S.V., Heumann, S., Komuravelli, R., Overbey, J., Simmons, P., Sung, H., Vakilian, M.: A type and effect system for deterministic parallel Java. In: Proc. OOPSLA, pp. 97\u2013116. ACM Press, New York (2009)"},{"key":"7_CR17","doi-asserted-by":"crossref","unstructured":"Landi, W., Ryder, B.G., Zhang, S.: Interprocedural side effect analysis with pointer aliasing. In: PLDI, pp. 56\u201367 (1993)","DOI":"10.1145\/173262.155096"},{"key":"7_CR18","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"287","DOI":"10.1007\/11406921_22","volume-title":"Compiler Construction","author":"A. Le","year":"2005","unstructured":"Le, A., Lhot\u00e9k, O., Hendren, L.: Using inter-procedural side-effect information in JIT optimizations. In: Bodik, R. (ed.) CC 2005. LNCS, vol.\u00a03443, pp. 287\u2013304. Springer, Heidelberg (2005)"},{"key":"7_CR19","unstructured":"Leavens, G.T.: Advances and issues in JML. In: Presentation at Java Verification Workshop (2002)"},{"key":"7_CR20","unstructured":"Leavens, G.T., Leino, K.R.M., Poll, E., Ruby, C., Jacobs, B.: JML: notations and tools supporting detailed design in Java. In: OOPSLA Companion, pp. 105\u2013106 (2000)"},{"key":"7_CR21","doi-asserted-by":"publisher","first-page":"304","DOI":"10.1145\/263698.263752","volume-title":"Proc. OOPSLA","author":"R. Lencevicius","year":"1997","unstructured":"Lencevicius, R., Holzle, U., Singh, A.K.: Query-based debugging of object-oriented programs. In: Proc. OOPSLA, pp. 304\u2013317. ACM Press, New York (1997)"},{"issue":"4","key":"7_CR22","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/566171.566174","volume":"27","author":"A. Milanova","year":"2002","unstructured":"Milanova, A., Rountev, A., Ryder, B.G.: Parameterized object sensitivity for points-to and side-effect analyses for Java. SIGSOFT Softw. Eng. Notes\u00a027(4), 1\u201311 (2002)","journal-title":"SIGSOFT Softw. Eng. Notes"},{"key":"7_CR23","unstructured":"Nguyen, P.H., Xue, J.: Interprocedural side-effect analysis and optimisation in the presence of dynamic class loading. In: Proc. ACSC, pp. 9\u201318 (2005)"},{"key":"7_CR24","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"79","DOI":"10.1007\/978-3-642-13953-6_5","volume-title":"Objects, Models, Components, Patterns","author":"M. Nordio","year":"2010","unstructured":"Nordio, M., Calcagno, C., Meyer, B., M\u00fcller, P., Tschannen, J.: Reasoning about function objects. In: Vitek, J. (ed.) TOOLS 2010. LNCS, vol.\u00a06141, pp. 79\u201396. Springer, Heidelberg (2010)"},{"key":"7_CR25","doi-asserted-by":"crossref","unstructured":"Pearce, D.J., Kelly, P.H.J., Hankin, C.: Efficient field-sensitive pointer analysis for C. ACM TOPLAS\u00a030 (2007)","DOI":"10.1145\/1290520.1290524"},{"key":"7_CR26","first-page":"82","volume-title":"Proc. ICSM","author":"A. Rountev","year":"2004","unstructured":"Rountev, A.: Precise identification of side-effect-free methods in Java. In: Proc. ICSM, pp. 82\u201391. IEEE Computer Society, Los Alamitos (2004)"},{"key":"7_CR27","doi-asserted-by":"crossref","unstructured":"Rountev, A., Milanova, A., Ryder, B.G.: Points-to analysis for Java using annotated constraints. In: Proc. OOPSLA, pp. 43\u201355 (2001)","DOI":"10.1145\/504311.504286"},{"key":"7_CR28","doi-asserted-by":"crossref","unstructured":"Rountev, A., Milanova, A., Ryder, B.G.: Fragment class analysis for testing of polymorphism in Java software. In: Proc. ICSE, pp. 210\u2013220 (2003)","DOI":"10.1109\/ICSE.2003.1201201"},{"key":"7_CR29","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"20","DOI":"10.1007\/3-540-45306-7_3","volume-title":"Compiler Construction","author":"A. Rountev","year":"2001","unstructured":"Rountev, A., Ryder, B.G.: Points-to and side-effect analyses for programs built with precompiled libraries. In: Wilhelm, R. (ed.) CC 2001. LNCS, vol.\u00a02027, pp. 20\u201336. Springer, Heidelberg (2001)"},{"key":"7_CR30","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"199","DOI":"10.1007\/978-3-540-30579-8_14","volume-title":"Verification, Model Checking, and Abstract Interpretation","author":"A. Salcianu","year":"2005","unstructured":"Salcianu, A., Rinard, M.: Purity and side effect analysis for Java programs. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol.\u00a03385, pp. 199\u2013215. Springer, Heidelberg (2005)"},{"issue":"5","key":"7_CR31","doi-asserted-by":"publisher","first-page":"188","DOI":"10.1145\/949952.940097","volume":"28","author":"O. Tkachuk","year":"2003","unstructured":"Tkachuk, O., Dwyer, M.B.: Adapting side effects analysis for modular program model checking. SIGSOFT Softw. Eng. Notes\u00a028(5), 188\u2013197 (2003)","journal-title":"SIGSOFT Softw. Eng. Notes"},{"key":"7_CR32","doi-asserted-by":"crossref","unstructured":"Vakilian, M., Dig, D., Bocchino, R.L., Overbey, J., Adve, V.S., Johnson, R.: Inferring method effect summaries for nested heap regions. In: Proc. ASE, pp. 421\u2013432 (2009)","DOI":"10.1109\/ASE.2009.68"},{"key":"7_CR33","doi-asserted-by":"crossref","first-page":"131","DOI":"10.1145\/996841.996859","volume-title":"Proc. PLDI","author":"J. Whaley","year":"2004","unstructured":"Whaley, J., Lam, M.S.: Cloning-based context-sensitive pointer alias analysis using Binary Decision Diagrams. In: Proc. PLDI, pp. 131\u2013144. ACM Press, New York (2004)"},{"key":"7_CR34","first-page":"1","volume-title":"Proc. OOPSLA","author":"D. Willis","year":"2008","unstructured":"Willis, D., Pearce, D.J., Noble, J.: Caching and incrementalisation in the java query language. In: Proc. OOPSLA, pp. 1\u201318. ACM Press, New York (2008)"},{"key":"7_CR35","doi-asserted-by":"crossref","first-page":"75","DOI":"10.1145\/1251535.1251548","volume-title":"Proc. PASTE","author":"H. Xu","year":"2007","unstructured":"Xu, H., Pickett, C.J.F., Verbrugge, C.: Dynamic purity analysis for Java programs. In: Proc. PASTE, pp. 75\u201382. ACM Press, New York (2007)"},{"key":"7_CR36","unstructured":"Zhao, J., Rogers, I., Kirkham, C., Watson, I.: Pure method analysis within jikes rvm. In: Proc. ICOOOLPS (2008)"}],"container-title":["Lecture Notes in Computer Science","Compiler Construction"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-642-19861-8_7","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,4,5]],"date-time":"2024-04-05T04:57:41Z","timestamp":1712293061000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-642-19861-8_7"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2011]]},"ISBN":["9783642198601","9783642198618"],"references-count":36,"URL":"https:\/\/doi.org\/10.1007\/978-3-642-19861-8_7","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2011]]}}}