{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,24]],"date-time":"2025-03-24T04:13:48Z","timestamp":1742789628332,"version":"3.40.2"},"publisher-location":"Berlin, Heidelberg","reference-count":40,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783642286513"},{"type":"electronic","value":"9783642286520"}],"license":[{"start":{"date-parts":[[2012,1,1]],"date-time":"2012-01-01T00:00:00Z","timestamp":1325376000000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2012]]},"DOI":"10.1007\/978-3-642-28652-0_8","type":"book-chapter","created":{"date-parts":[[2012,3,22]],"date-time":"2012-03-22T21:02:02Z","timestamp":1332450122000},"page":"144-164","source":"Crossref","is-referenced-by-count":6,"title":["Object Model Construction for Inheritance in C++ and Its Applications to Program Analysis"],"prefix":"10.1007","author":[{"given":"Jing","family":"Yang","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Gogul","family":"Balakrishnan","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Naoto","family":"Maeda","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Franjo","family":"Ivan\u010di\u0107","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Aarti","family":"Gupta","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Nishant","family":"Sinha","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Sriram","family":"Sankaranarayanan","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Naveen","family":"Sharma","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"8_CR1","unstructured":"Apache. Xerces project, http:\/\/xerces.apache.org\/"},{"key":"8_CR2","doi-asserted-by":"crossref","unstructured":"Balakrishan, G., Maeda, N., Sankaranarayanan, S., Ivan\u010di\u0107, F., Gupta, A., Pothengil, R.: Modeling and analyzing the interaction of C and C++ strings. In: Int. Conf. on Formal Verif. of Object-Oriented Software (2011)","DOI":"10.1007\/978-3-642-31762-0_6"},{"key":"8_CR3","doi-asserted-by":"crossref","unstructured":"Ball, T., Rajamani, S.K.: The SLAM project: debugging system software via static analysis. In: POPL, pp. 1\u20133 (2002)","DOI":"10.1145\/565816.503274"},{"key":"8_CR4","doi-asserted-by":"crossref","unstructured":"Chandra, S., Fink, S.J., Sridharan, M.: Snugglebug: A powerful approach to weakest preconditions. In: PLDI, pp. 363\u2013374 (2009)","DOI":"10.1145\/1543135.1542517"},{"key":"8_CR5","doi-asserted-by":"crossref","unstructured":"Chen, J.: A typed intermediate language for compiling multiple inheritance. In: POPL (2007)","DOI":"10.1145\/1190216.1190222"},{"key":"8_CR6","unstructured":"Clang static analyzer, http:\/\/clang-analyzer.llvm.org"},{"key":"8_CR7","unstructured":"C++ support for Clang, http:\/\/clang-analyzer.llvm.org\/dev_cxx.html (accessed January 6, 2012)"},{"key":"8_CR8","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"168","DOI":"10.1007\/978-3-540-24730-2_15","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems","author":"E. Clarke","year":"2004","unstructured":"Clarke, E., Kroning, D., Lerda, F.: A Tool for Checking ANSI-C Programs. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol.\u00a02988, pp. 168\u2013176. Springer, Heidelberg (2004)"},{"key":"8_CR9","volume-title":"Model checking","author":"E.M. Clarke Jr.","year":"1999","unstructured":"Clarke Jr., E.M., Grumberg, O., Peled, D.A.: Model checking. MIT Press, Cambridge (1999)"},{"key":"8_CR10","unstructured":"Comeau C++ compiler, http:\/\/www.comeaucomputing.com"},{"key":"8_CR11","doi-asserted-by":"crossref","unstructured":"Cousot, P., Cousot, R.: Static determination of dynamic properties of programs. In: Proc. 2nd. Int. Symp. on Programming, Paris (April 1976)","DOI":"10.1145\/390018.808314"},{"key":"8_CR12","doi-asserted-by":"crossref","unstructured":"Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximation of fixed points. In: POPL (1977)","DOI":"10.1145\/512950.512973"},{"key":"8_CR13","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"21","DOI":"10.1007\/978-3-540-31987-0_3","volume-title":"Programming Languages and Systems","author":"P. Cousot","year":"2005","unstructured":"Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Min\u00e9, A., Monniaux, D., Rival, X.: The ASTRE\u00c9 Analyzer. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol.\u00a03444, pp. 21\u201330. Springer, Heidelberg (2005)"},{"key":"8_CR14","doi-asserted-by":"crossref","unstructured":"Cousot, P., Halbwachs, N.: Automatic discovery of linear constraints among variables of a program. In: POPL, pp. 84\u201396 (1978)","DOI":"10.1145\/512760.512770"},{"key":"8_CR15","unstructured":"C++ frontend. Edison Design Group, NJ"},{"issue":"4","key":"8_CR16","doi-asserted-by":"crossref","first-page":"366","DOI":"10.1007\/s100090050043","volume":"2","author":"K. Havelund","year":"2000","unstructured":"Havelund, K., Pressburger, T.: Model checking java programs using java pathfinder. STTT\u00a02(4), 366\u2013381 (2000)","journal-title":"STTT"},{"key":"8_CR17","doi-asserted-by":"crossref","unstructured":"Hovemeyer, D., Pugh, W.: Finding more null pointer bugs, but not too many. In: PASTE, pp. 9\u201314 (2007)","DOI":"10.1145\/1251535.1251537"},{"key":"8_CR18","doi-asserted-by":"crossref","unstructured":"Ivan\u010di\u0107, F., Shlyakhter, I., Gupta, A., Ganai, M., Kahlon, V., Wang, C., Yang, Z.: Model checking C programs using F-Soft. In: IEEE International Conference on Computer Design, pp. 297\u2013308 (October 2005)","DOI":"10.1109\/ICCD.2005.77"},{"key":"8_CR19","unstructured":"Lattner, C.: LLVM: A compilation framework for lifelong program analysis and transformation. In: Int. Symp. on Code Generation and Optimization (2004)"},{"issue":"2","key":"8_CR20","doi-asserted-by":"publisher","first-page":"159","DOI":"10.1007\/s00165-007-0026-7","volume":"19","author":"G.T. Leavens","year":"2007","unstructured":"Leavens, G.T., Leino, K.R.M., M\u00fcller, P.: Specification and verification challenges for sequential object-oriented programs. Formal Asp. Comput.\u00a019(2), 159\u2013189 (2007)","journal-title":"Formal Asp. Comput."},{"key":"8_CR21","doi-asserted-by":"crossref","unstructured":"Lieberman, H.: Using prototypical objects to implement shared behavior in object oriented systems. In: OOPSLA, pp. 214\u2013223 (1986)","DOI":"10.1145\/960112.28718"},{"key":"8_CR22","unstructured":"Min\u00e9, A.: The octagon abstract domain. In: Working Conf. on Rev. Eng. (2001)"},{"key":"8_CR23","unstructured":"NECLA verification benchmarks, http:\/\/www.nec-labs.com\/research\/system\/systems_SAV-website\/benchmarks.php"},{"key":"8_CR24","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: CC 2002. LNCS, vol.\u00a02304, pp. 213\u2013228. Springer, Heidelberg (2002)"},{"key":"8_CR25","unstructured":"Nokia. Qt: a cross-platform application and UI framework, http:\/\/qt.nokia.com\/"},{"key":"8_CR26","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"583","DOI":"10.1007\/978-3-642-22655-7_27","volume-title":"ECOOP 2011 \u2013 Object-Oriented Programming","author":"P. Prabhu","year":"2011","unstructured":"Prabhu, P., Maeda, N., Balakrishnan, G., Ivan\u010di\u0107, F., Gupta, A.: Interprocedural Exception Analysis for C++. In: Mezini, M. (ed.) ECOOP 2011. LNCS, vol.\u00a06813, pp. 583\u2013608. Springer, Heidelberg (2011)"},{"issue":"2\/3","key":"8_CR27","doi-asserted-by":"publisher","first-page":"215","DOI":"10.1142\/S0129626400000214","volume":"10","author":"D.J. Quinlan","year":"2000","unstructured":"Quinlan, D.J.: Rose: Compiler support for object-oriented frameworks. Parallel Processing Letters\u00a010(2\/3), 215\u2013226 (2000)","journal-title":"Parallel Processing Letters"},{"key":"8_CR28","first-page":"18","volume-title":"SIGPLAN Conf. on Prog. Lang. Design and Impl.","author":"G. Ramalingam","year":"1997","unstructured":"Ramalingam, G., Srinivasan, H.: A member lookup algorithm for C++. In: SIGPLAN Conf. on Prog. Lang. Design and Impl., pp. 18\u201330. ACM, New York (1997)"},{"key":"8_CR29","doi-asserted-by":"crossref","unstructured":"Ramananandro, T., Reis, G.D., Leroy, X.: Formal verification of object layout for C++ multiple inheritance. In: POPL (2011)","DOI":"10.1145\/1926385.1926395"},{"key":"8_CR30","first-page":"187","volume-title":"OOPSLA","author":"J.G. Rossie Jr.","year":"1995","unstructured":"Rossie Jr., J.G., Friedman, D.P.: An algebraic semantics of subobjects. In: OOPSLA, pp. 187\u2013199. ACM, New York (1995)"},{"key":"8_CR31","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"366","DOI":"10.1007\/978-3-540-74061-2_23","volume-title":"Static Analysis","author":"S. Sankaranarayanan","year":"2007","unstructured":"Sankaranarayanan, S., Ivan\u010di\u0107, F., Gupta, A.: Program Analysis Using Symbolic Ranges. In: Riis Nielson, H., Fil\u00e9, G. (eds.) SAS 2007. LNCS, vol.\u00a04634, pp. 366\u2013383. Springer, Heidelberg (2007)"},{"key":"8_CR32","unstructured":"C. standards commitee. Working draft, standard for C++, http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2011\/n3242.pdf (accessed January 6, 2012)"},{"issue":"4","key":"8_CR33","first-page":"367","volume":"2","author":"B. Stroustrup","year":"1989","unstructured":"Stroustrup, B.: Multiple inheritance for C++. Computing Systems\u00a02(4), 367\u2013395 (1989)","journal-title":"Computing Systems"},{"key":"8_CR34","doi-asserted-by":"crossref","unstructured":"Stroustrup, B.: Evolving a language in and for the real world: C++ 1991-2006. In: Proc. of History of Programming Languages III (2007)","DOI":"10.1145\/1238844.1238848"},{"issue":"7","key":"8_CR35","doi-asserted-by":"publisher","first-page":"595","DOI":"10.1002\/spe.519","volume":"33","author":"P.F. Sweeney","year":"2003","unstructured":"Sweeney, P.F., Burke, M.: Quantifying and evaluating the space overhead for alternative C++ memory layouts. Softw. Pract. Exper.\u00a033(7), 595\u2013636 (2003)","journal-title":"Softw. Pract. Exper."},{"key":"8_CR36","volume-title":"OOPSLA","author":"P.F. Sweeney","year":"1999","unstructured":"Sweeney, P.F., Gil, J.Y.: Space and time-efficient memory layout for multiple inheritance. In: OOPSLA. ACM, New York (1999)"},{"issue":"4","key":"8_CR37","doi-asserted-by":"publisher","first-page":"189","DOI":"10.1016\/S0096-0551(00)00005-9","volume":"25","author":"K. Thirunarayan","year":"1999","unstructured":"Thirunarayan, K., Kniesel, G., Hampapuram, H.: Simulating multiple inheritance and generics in Java. Comp. Lang.\u00a025(4), 189\u2013210 (1999)","journal-title":"Comp. Lang."},{"issue":"12","key":"8_CR38","doi-asserted-by":"publisher","first-page":"927","DOI":"10.1007\/PL00013298","volume":"36","author":"F. Tip","year":"2000","unstructured":"Tip, F., Sweeney, P.F.: Class hierarchy specialization. Acta. Inf.\u00a036(12), 927\u2013982 (2000)","journal-title":"Acta. Inf."},{"key":"8_CR39","doi-asserted-by":"crossref","unstructured":"Wasserrab, D., Nipkow, T., Snelting, G., Tip, F.: An operational semantics and type safety proof for multiple inheritance in C++. In: OOPSLA, pp. 345\u2013362. ACM Press (2006)","DOI":"10.1145\/1167515.1167503"},{"key":"8_CR40","doi-asserted-by":"crossref","unstructured":"Xie, Y., Aiken, A.: Saturn: A scalable framework for error detection using boolean satisfiability. Trans. on Prog. Lang. and Syst.\u00a029(3) (2007)","DOI":"10.1145\/1232420.1232423"}],"container-title":["Lecture Notes in Computer Science","Compiler Construction"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-642-28652-0_8","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,3,23]],"date-time":"2025-03-23T18:55:29Z","timestamp":1742756129000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-642-28652-0_8"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2012]]},"ISBN":["9783642286513","9783642286520"],"references-count":40,"URL":"https:\/\/doi.org\/10.1007\/978-3-642-28652-0_8","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2012]]}}}