{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,11]],"date-time":"2026-04-11T02:12:44Z","timestamp":1775873564870,"version":"3.50.1"},"publisher-location":"Berlin, Heidelberg","reference-count":23,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"value":"9783642390371","type":"print"},{"value":"9783642390388","type":"electronic"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2013]]},"DOI":"10.1007\/978-3-642-39038-8_9","type":"book-chapter","created":{"date-parts":[[2013,6,25]],"date-time":"2013-06-25T10:29:00Z","timestamp":1372156140000},"page":"205-229","source":"Crossref","is-referenced-by-count":15,"title":["The Billion-Dollar Fix"],"prefix":"10.1007","author":[{"given":"Marco","family":"Servetto","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Julian","family":"Mackay","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Alex","family":"Potanin","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"James","family":"Noble","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"9_CR1","doi-asserted-by":"crossref","unstructured":"Birka, A., Ernst, M.D.: A practical type system and language for reference immutability. In: OOPSLA, pp. 35\u201349 (2004)","DOI":"10.1145\/1035292.1028980"},{"key":"9_CR2","doi-asserted-by":"crossref","unstructured":"Bracha, G.: Executable grammars in Newspeak. In: JAOO (2007)","DOI":"10.1016\/j.entcs.2007.10.004"},{"key":"9_CR3","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"405","DOI":"10.1007\/978-3-642-14107-2_20","volume-title":"ECOOP 2010 \u2013 Object-Oriented Programming","author":"G. Bracha","year":"2010","unstructured":"Bracha, G., von der Ah\u00e9, P., Bykov, V., Kashai, Y., Maddox, W., Miranda, E.: Modules as objects in Newspeak. In: D\u2019Hondt, T. (ed.) ECOOP 2010. LNCS, vol.\u00a06183, pp. 405\u2013428. Springer, Heidelberg (2010), \n                    \n                      http:\/\/dl.acm.org\/citation.cfm?id=1883978.1884007"},{"issue":"5","key":"9_CR4","doi-asserted-by":"publisher","first-page":"318","DOI":"10.1049\/iet-sen.2009.0010","volume":"4","author":"S. Counsell","year":"2010","unstructured":"Counsell, S., Loizou, G., Najjar, R.: Evaluation of the \u2018replace constructors with creation methods\u2019 refactoring in Java systems. IET Software\u00a04(5), 318\u2013333 (2010)","journal-title":"IET Software"},{"key":"9_CR5","doi-asserted-by":"crossref","unstructured":"F\u00e4hndrich, M., Xia, S.: Establishing object invariants with delayed types. In: OOPSLA. pp. 337\u2013350 (2007)","DOI":"10.1145\/1297105.1297052"},{"key":"9_CR6","unstructured":"Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley (2000)"},{"key":"9_CR7","unstructured":"Gamma, E., Helm, R., Johnson, R.E., Vlissides, J.M.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional Computing Series. Addison-Wesley (1995)"},{"key":"9_CR8","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"495","DOI":"10.1007\/978-3-642-03013-0_23","volume-title":"ECOOP 2009 \u2013 Object-Oriented Programming","author":"J.(Y.) Gil","year":"2009","unstructured":"Gil, J(Y.), Shragai, T.: Are we ready for a safer construction environment? In: Drossopoulou, S. (ed.) ECOOP 2009. LNCS, vol.\u00a05653, pp. 495\u2013519. Springer, Heidelberg (2009)"},{"key":"9_CR9","doi-asserted-by":"crossref","unstructured":"Gordon, C.S., Parkinson, M.J., Parsons, J., Bromfield, A., Duffy, J.: Uniqueness and reference immutability for safe parallelism. In: OOPSLA, pp. 21\u201340 (2012)","DOI":"10.1145\/2398857.2384619"},{"key":"9_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"520","DOI":"10.1007\/978-3-642-03013-0_24","volume-title":"ECOOP 2009 \u2013 Object-Oriented Programming","author":"C. Haack","year":"2009","unstructured":"Haack, C., Poll, E.: Type-based object immutability with flexible initialization. In: Drossopoulou, S. (ed.) ECOOP 2009. LNCS, vol.\u00a05653, pp. 520\u2013545. Springer, Heidelberg (2009)"},{"key":"9_CR11","doi-asserted-by":"crossref","unstructured":"Hoare, C.A.R.: The emperor\u2019s old clothes. Comm. ACM\u00a024(2) (February 1981)","DOI":"10.1145\/358549.358561"},{"key":"9_CR12","unstructured":"Hoare, C.: Null references: The billion dollar mistake (March 2009), abstract of QCon London Keynote \n                    \n                      qconlondon.com\/london-2009\/presentation\/Null+References:+The+Billion+Dollar+Mistake"},{"key":"9_CR13","doi-asserted-by":"crossref","unstructured":"Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: A minimal core calculus for Java and GJ. In: OOPSLA, pp. 132\u2013146 (1999)","DOI":"10.1145\/320385.320395"},{"key":"9_CR14","unstructured":"Leroy, X.: The Objective Caml system (release 2.00) (August 1998), \n                    \n                      http:\/\/paulliac.inria.fr\/caml"},{"key":"9_CR15","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"2","DOI":"10.1007\/978-3-642-31057-7_2","volume-title":"ECOOP 2012 \u2013 Object-Oriented Programming","author":"B.C.d.S. Oliveira","year":"2012","unstructured":"Oliveira, B.C.d.S., Cook, W.R.: Extensibility for the masses - practical extensibility with object algebras. In: Noble, J. (ed.) ECOOP 2012. LNCS, vol.\u00a07313, pp. 2\u201327. Springer, Heidelberg (2012)"},{"key":"9_CR16","doi-asserted-by":"crossref","unstructured":"Qi, X., Myers, A.C.: Masked types for sound object initialization. In: POPL, pp. 53\u201365 (2009)","DOI":"10.1145\/1594834.1480890"},{"key":"9_CR17","unstructured":"Servetto, M., Mackay, J., Potanin, A., Noble, J.: The billion dollar fix: Safe modular circular initialisation with placeholders and placeholder types. Tech. Rep. 12-25, ECS, VUW (2012), \n                    \n                      http:\/\/ecs.victoria.ac.nz\/Main\/TechnicalReportSeries"},{"key":"9_CR18","unstructured":"Servetto, M., Potanin, A.: Our billion dollar fix. Tech. Rep. 12-19, ECS, VUW (2012), \n                    \n                      http:\/\/ecs.victoria.ac.nz\/Main\/TechnicalReportSeries"},{"key":"9_CR19","doi-asserted-by":"crossref","unstructured":"Summers, A.J., M\u00fcller, P.: Freedom before commitment - a lightweight type system for object initialisation. In: OOPSLA, pp. 1013\u20131032 (2011)","DOI":"10.1145\/2076021.2048142"},{"issue":"2","key":"9_CR20","doi-asserted-by":"publisher","first-page":"3","DOI":"10.1016\/j.entcs.2005.11.038","volume":"148","author":"D. Syme","year":"2006","unstructured":"Syme, D.: Initializing mutually referential abstract objects: The value recursion challenge. Electronic Notes in Theoretical Computer Science\u00a0148(2), 3\u201325 (2006)","journal-title":"Electronic Notes in Theoretical Computer Science"},{"key":"9_CR21","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"207","DOI":"10.1007\/978-3-642-31057-7_10","volume-title":"ECOOP 2012 \u2013 Object-Oriented Programming","author":"Y. Zibin","year":"2012","unstructured":"Zibin, Y., Cunningham, D., Peshansky, I., Saraswat, V.: Object initialization in X10. In: Noble, J. (ed.) ECOOP 2012. LNCS, vol.\u00a07313, pp. 207\u2013231. Springer, Heidelberg (2012)"},{"key":"9_CR22","doi-asserted-by":"crossref","unstructured":"Zibin, Y., Potanin, A., Artzi, S., Kiezun, A., Ernst, M.D.: Object and reference immutability using Java generics. In: Foundations of Software Engineering (2007)","DOI":"10.1145\/1287624.1287637"},{"key":"9_CR23","doi-asserted-by":"crossref","unstructured":"Zibin, Y., Potanin, A., Li, P., Ali, M., Ernst, M.D.: Ownership and immutability in generic Java. In: OOPSLA, pp. 598\u2013617 (2010)","DOI":"10.1145\/1932682.1869509"}],"container-title":["Lecture Notes in Computer Science","ECOOP 2013 \u2013 Object-Oriented Programming"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-642-39038-8_9","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,5,14]],"date-time":"2019-05-14T14:57:40Z","timestamp":1557845860000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-642-39038-8_9"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2013]]},"ISBN":["9783642390371","9783642390388"],"references-count":23,"URL":"https:\/\/doi.org\/10.1007\/978-3-642-39038-8_9","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2013]]}}}