{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,4]],"date-time":"2026-02-04T16:11:59Z","timestamp":1770221519553,"version":"3.49.0"},"publisher-location":"Berlin, Heidelberg","reference-count":28,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"value":"9783662442012","type":"print"},{"value":"9783662442029","type":"electronic"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2014]]},"DOI":"10.1007\/978-3-662-44202-9_4","type":"book-chapter","created":{"date-parts":[[2014,7,17]],"date-time":"2014-07-17T02:01:13Z","timestamp":1405562473000},"page":"80-104","source":"Crossref","is-referenced-by-count":25,"title":["Finding Reference-Counting Errors in Python\/C Programs with Affine Analysis"],"prefix":"10.1007","author":[{"given":"Siliang","family":"Li","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Gang","family":"Tan","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"4_CR1","doi-asserted-by":"crossref","unstructured":"Meyerovich, L.A., Rabkin, A.S.: Empirical analysis of programming language adoption. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 1\u201318 (2013)","DOI":"10.1145\/2509136.2509515"},{"key":"4_CR2","unstructured":"Python\/C API reference manual (2013), \n                    \n                      http:\/\/docs.python.org\/3.3\/c-api\/index.html"},{"issue":"2","key":"4_CR3","doi-asserted-by":"publisher","first-page":"57","DOI":"10.1016\/j.ipl.2010.08.003","volume":"111","author":"A. Lal","year":"2010","unstructured":"Lal, A., Ramalingam, G.: Reference count analysis with shallow aliasing. Information Processing Letters\u00a0111(2), 57\u201363 (2010)","journal-title":"Information Processing Letters"},{"key":"4_CR4","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"352","DOI":"10.1007\/978-3-642-00768-2_30","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems","author":"M. Emmi","year":"2009","unstructured":"Emmi, M., Jhala, R., Kohler, E., Majumdar, R.: Verifying reference counting implementations. In: Kowalewski, S., Philippou, A. (eds.) TACAS 2009. LNCS, vol.\u00a05505, pp. 352\u2013367. Springer, Heidelberg (2009)"},{"key":"4_CR5","unstructured":"Malcom, D.: Cpychecker, \n                    \n                      https:\/\/gcc-python-plugin.readthedocs.org\/en\/latest\/cpychecker.html"},{"key":"4_CR6","unstructured":"Beazley, D.M.: SWIG Users Manual: Version 1.1 (June 1997)"},{"key":"4_CR7","unstructured":"Cython, \n                    \n                      http:\/\/cython.org\/"},{"key":"4_CR8","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"309","DOI":"10.1007\/11693024_21","volume-title":"Programming Languages and Systems","author":"M. Furr","year":"2006","unstructured":"Furr, M., Foster, J.S.: Polymorphic type inference for the JNI. In: Sestoft, P. (ed.) ESOP 2006. LNCS, vol.\u00a03924, pp. 309\u2013324. Springer, Heidelberg (2006)"},{"key":"4_CR9","doi-asserted-by":"crossref","unstructured":"Tan, G., Morrisett, G.: ILEA: Inter-language analysis across Java and C. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 39\u201356 (2007)","DOI":"10.1145\/1297105.1297031"},{"key":"4_CR10","doi-asserted-by":"crossref","first-page":"109","DOI":"10.1145\/1390630.1390645","volume-title":"ISSTA 2008: Proceedings of the 2008 International Symposium on Software Testing and Analysis","author":"G. Kondoh","year":"2008","unstructured":"Kondoh, G., Onodera, T.: Finding bugs in Java Native Interface programs. In: ISSTA 2008: Proceedings of the 2008 International Symposium on Software Testing and Analysis, pp. 109\u2013118. ACM, New York (2008)"},{"key":"4_CR11","doi-asserted-by":"crossref","unstructured":"Li, S., Tan, G.: Finding bugs in exceptional situations of JNI programs. In: 16th ACM Conference on Computer and Communications Security (CCS), pp. 442\u2013452 (2009)","DOI":"10.1145\/1653662.1653716"},{"key":"4_CR12","doi-asserted-by":"crossref","unstructured":"Lee, B., Hirzel, M., Grimm, R., Wiedermann, B., McKinley, K.S.: Jinn: Synthesizing a dynamic bug detector for foreign language interfaces. In: ACM Conference on Programming Language Design and Implementation (PLDI), pp. 36\u201349 (2010)","DOI":"10.1145\/1809028.1806601"},{"key":"4_CR13","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"2","DOI":"10.1007\/978-3-642-35182-2_2","volume-title":"Programming Languages and Systems","author":"S. Li","year":"2012","unstructured":"Li, S., Liu, Y.D., Tan, G.: Native code atomicity for Java. In: Jhala, R., Igarashi, A. (eds.) APLAS 2012. LNCS, vol.\u00a07705, pp. 2\u201317. Springer, Heidelberg (2012)"},{"key":"4_CR14","doi-asserted-by":"crossref","unstructured":"Siefers, J., Tan, G., Morrisett, G.: Robusta: Taming the native beast of the JVM. In: 17th ACM Conference on Computer and Communications Security (CCS), pp. 201\u2013211 (2010)","DOI":"10.1145\/1866307.1866331"},{"key":"4_CR15","unstructured":"Tan, G., Appel, A., Chakradhar, S., Raghunathan, A., Ravi, S., Wang, D.: Safe Java Native Interface. In: Proceedings of IEEE International Symposium on Secure Software Engineering, pp. 97\u2013106 (2006)"},{"key":"4_CR16","doi-asserted-by":"crossref","unstructured":"Hirzel, M., Grimm, R.: Jeannie: Granting Java Native Interface developers their wishes. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 19\u201338 (2007)","DOI":"10.1145\/1297105.1297030"},{"key":"4_CR17","doi-asserted-by":"crossref","unstructured":"Furr, M., Foster, J.: Checking type safety of foreign function calls. In: ACM Conference on Programming Language Design and Implementation (PLDI), pp. 62\u201372 (2005)","DOI":"10.1145\/1064978.1065019"},{"key":"4_CR18","doi-asserted-by":"crossref","unstructured":"Li, S., Tan, G.: JET: Exception checking in the Java Native Interface. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 345\u2013358 (2011)","DOI":"10.1145\/2076021.2048095"},{"key":"4_CR19","doi-asserted-by":"crossref","unstructured":"Gulwani, S., Necula, G.C.: Discovering affine equalities using random interpretation. In: 30th ACM Symposium on Principles of Programming Languages (POPL), pp. 74\u201384 (2003)","DOI":"10.1145\/640128.604138"},{"key":"4_CR20","doi-asserted-by":"crossref","unstructured":"M\u00fcller-Olm, M., Seidl, H.: Precise interprocedural analysis through linear algebra. In: 31st ACM Symposium on Principles of Programming Languages (POPL), pp. 330\u2013341 (2004)","DOI":"10.1145\/982962.964029"},{"key":"4_CR21","doi-asserted-by":"publisher","first-page":"133","DOI":"10.1007\/BF00268497","volume":"6","author":"M. Karr","year":"1976","unstructured":"Karr, M.: Affine relationships among variables of a program. Acta Informatica\u00a06, 133\u2013151 (1976)","journal-title":"Acta Informatica"},{"key":"4_CR22","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"190","DOI":"10.1007\/3-540-45309-1_13","volume-title":"Programming Languages and Systems","author":"M. M\u00fcller-Olm","year":"2001","unstructured":"M\u00fcller-Olm, M., R\u00fcthing, O.: On the complexity of constant propagation. In: Sands, D. (ed.) ESOP 2001. LNCS, vol.\u00a02028, pp. 190\u2013205. Springer, Heidelberg (2001)"},{"key":"4_CR23","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"198","DOI":"10.1007\/978-3-642-23702-7_17","volume-title":"Static Analysis","author":"M. Elder","year":"2011","unstructured":"Elder, M., Lim, J., Sharma, T., Andersen, T., Reps, T.: Abstract domains of affine relations. In: Yahav, E. (ed.) Static Analysis. LNCS, vol.\u00a06887, pp. 198\u2013215. Springer, Heidelberg (2011)"},{"key":"4_CR24","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"190","DOI":"10.1007\/3-540-15975-4_37","volume-title":"Functional Programming Languages and Computer Architecture","author":"T. Johnsson","year":"1985","unstructured":"Johnsson, T.: Lambda lifting: Transforming programs to recursive equations. In: Jouannaud, J.-P. (ed.) FPCA 1985. LNCS, vol.\u00a0201, pp. 190\u2013203. Springer, Heidelberg (1985)"},{"key":"4_CR25","doi-asserted-by":"crossref","unstructured":"Das, M., Lerner, S., Seigle, M.: ESP: path-sensitive program verification in polynomial time. In: ACM Conference on Programming Language Design and Implementation (PLDI), pp. 57\u201368 (2002)","DOI":"10.1145\/543552.512538"},{"key":"4_CR26","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"213","DOI":"10.1007\/3-540-45937-5_16","volume-title":"Compiler Construction","author":"G.C. Necula","year":"2002","unstructured":"Necula, G.C., McPeak, S., Rahul, S.P., Weimer, W.: CIL: Intermediate language and tools for analysis and transformation of C programs. In: Nigel Horspool, R. (ed.) CC 2002. LNCS, vol.\u00a02304, pp. 213\u2013228. Springer, Heidelberg (2002)"},{"key":"4_CR27","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"110","DOI":"10.1007\/3-540-46423-9_8","volume-title":"Compiler Construction","author":"J. Aycock","year":"2000","unstructured":"Aycock, J.: Simple generation of static single-assignment form. In: Watt, D.A. (ed.) CC 2000. LNCS, vol.\u00a01781, pp. 110\u2013124. Springer, Heidelberg (2000)"},{"key":"4_CR28","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"483","DOI":"10.1007\/3-540-44898-5_27","volume-title":"Static Analysis","author":"R. Shaham","year":"2003","unstructured":"Shaham, R., Yahav, E., Kolodner, E.K., Sagiv, M.: Establishing local temporal heap safety properties with applications to compile-time memory management. In: Cousot, R. (ed.) SAS 2003. LNCS, vol.\u00a02694, pp. 483\u2013503. Springer, Heidelberg (2003)"}],"container-title":["Lecture Notes in Computer Science","ECOOP 2014 \u2013 Object-Oriented Programming"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-662-44202-9_4","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,5,27]],"date-time":"2019-05-27T09:49:54Z","timestamp":1558950594000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-662-44202-9_4"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014]]},"ISBN":["9783662442012","9783662442029"],"references-count":28,"URL":"https:\/\/doi.org\/10.1007\/978-3-662-44202-9_4","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2014]]}}}