{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,8]],"date-time":"2024-09-08T12:10:41Z","timestamp":1725797441812},"publisher-location":"Berlin, Heidelberg","reference-count":29,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783662442012"},{"type":"electronic","value":"9783662442029"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2014]]},"DOI":"10.1007\/978-3-662-44202-9_3","type":"book-chapter","created":{"date-parts":[[2014,7,16]],"date-time":"2014-07-16T22:01:13Z","timestamp":1405548073000},"page":"54-79","source":"Crossref","is-referenced-by-count":8,"title":["Constructing Call Graphs of Scala Programs"],"prefix":"10.1007","author":[{"given":"Karim","family":"Ali","sequence":"first","affiliation":[]},{"given":"Marianna","family":"Rapoport","sequence":"additional","affiliation":[]},{"given":"Ond\u0159ej","family":"Lhot\u00e1k","sequence":"additional","affiliation":[]},{"given":"Julian","family":"Dolby","sequence":"additional","affiliation":[]},{"given":"Frank","family":"Tip","sequence":"additional","affiliation":[]}],"member":"297","reference":[{"key":"3_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"78","DOI":"10.1007\/3-540-58485-4_34","volume-title":"Static Analysis","author":"O. Agesen","year":"1994","unstructured":"Agesen, O.: Constraint-based Type Inference and Parametric Polymorphism. In: LeCharlier, B. (ed.) SAS 1994. LNCS, vol.\u00a0864, pp. 78\u2013100. Springer, Heidelberg (1994)"},{"key":"3_CR2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"688","DOI":"10.1007\/978-3-642-31057-7_30","volume-title":"ECOOP 2012 \u2013 Object-Oriented Programming","author":"K. Ali","year":"2012","unstructured":"Ali, K., Lhot\u00e1k, O.: Application-only Call Graph Construction. In: Noble, J. (ed.) ECOOP 2012. LNCS, vol.\u00a07313, pp. 688\u2013712. Springer, Heidelberg (2012)"},{"key":"3_CR3","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"378","DOI":"10.1007\/978-3-642-39038-8_16","volume-title":"ECOOP 2013 \u2013 Object-Oriented Programming","author":"K. Ali","year":"2013","unstructured":"Ali, K., Lhot\u00e1k, O.: averroes: Whole-program analysis without the whole program. In: Castagna, G. (ed.) ECOOP 2013. LNCS, vol.\u00a07920, pp. 378\u2013400. Springer, Heidelberg (2013)"},{"key":"3_CR4","doi-asserted-by":"crossref","unstructured":"Ali, K., Rapoport, M., Lhot\u00e1k, O., Dolby, J., Tip, F.: Constructing call graphs of Scala programs. Tech. Rep. CS-2014-09, U. of Waterloo (2014)","DOI":"10.1007\/978-3-662-44202-9_3"},{"key":"3_CR5","unstructured":"Bacon, D.F.: Fast and Effective Optimization of Statically Typed Object-Oriented Languages. PhD thesis, University of California, Berkeley (1997)"},{"key":"3_CR6","doi-asserted-by":"crossref","unstructured":"Bacon, D.F., Sweeney, P.F.: Fast static analysis of C++ virtual function calls. In: OOPSLA, pp. 324\u2013341 (1996)","DOI":"10.1145\/236338.236371"},{"key":"3_CR7","doi-asserted-by":"crossref","unstructured":"Bravenboer, M., Smaragdakis, Y.: Strictly Declarative Specification of Sophisticated Points-to Analyses. In: OOPSLA, pp. 243\u2013262 (2009)","DOI":"10.1145\/1639949.1640108"},{"key":"3_CR8","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/11821069_1","volume-title":"Mathematical Foundations of Computer Science 2006","author":"V. Cremet","year":"2006","unstructured":"Cremet, V., Garillot, F., Lenglet, S., Odersky, M.: A core calculus for Scala type checking. In: Kr\u00e1lovi\u010d, R., Urzyczyn, P. (eds.) MFCS 2006. LNCS, vol.\u00a04162, pp. 1\u201323. Springer, Heidelberg (2006)"},{"key":"3_CR9","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":"3_CR10","doi-asserted-by":"crossref","unstructured":"DeFouw, G., Grove, D., Chambers, C.: Fast Interprocedural Class Analysis. In: POPL, pp. 222\u2013236 (1998)","DOI":"10.1145\/268946.268965"},{"issue":"6","key":"3_CR11","doi-asserted-by":"publisher","first-page":"685","DOI":"10.1145\/506315.506316","volume":"23","author":"D. Grove","year":"2001","unstructured":"Grove, D., Chambers, C.: A framework for call graph construction algorithms. ACM Trans. Program. Lang. Syst.\u00a023(6), 685\u2013746 (2001)","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"3_CR12","doi-asserted-by":"crossref","unstructured":"Heintze, N.: Set-Based Analysis of ML Programs. In: LISP and Functional Programming, pp. 306\u2013317 (1994)","DOI":"10.1145\/182590.182495"},{"key":"3_CR13","doi-asserted-by":"crossref","unstructured":"Heintze, N., Tardieu, O.: Ultra-fast Aliasing Analysis using CLA: A Million Lines of C Code in a Second. In: PLDI, pp. 254\u2013263 (2001)","DOI":"10.1145\/381694.378855"},{"key":"3_CR14","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"233","DOI":"10.1007\/3-540-55253-7_14","volume-title":"ESOP \u201992","author":"F. Henglein","year":"1992","unstructured":"Henglein, F.: Dynamic Typing. In: Krieg-Br\u00fcckner, B. (ed.) ESOP 1992. LNCS, vol.\u00a0582, pp. 233\u2013253. Springer, Heidelberg (1992)"},{"key":"3_CR15","unstructured":"IBM. T.J. Watson Libraries for Analysis WALA (April 2013), \n                    \n                      http:\/\/wala.sourceforge.net\/"},{"key":"3_CR16","doi-asserted-by":"crossref","unstructured":"Kneuss, E., Suter, P., Kuncak, V.: Phantm: PHP analyzer for type mismatch. In: SIGSOFT FSE, pp. 373\u2013374 (2010)","DOI":"10.1145\/1882291.1882355"},{"key":"3_CR17","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"153","DOI":"10.1007\/3-540-36579-6_12","volume-title":"Compiler Construction","author":"O. Lhot\u00e1k","year":"2003","unstructured":"Lhot\u00e1k, O., Hendren, L.: Scaling Java Points-to Analysis Using SPARK. In: Hedin, G. (ed.) CC 2003. LNCS, vol.\u00a02622, pp. 153\u2013169. Springer, Heidelberg (2003)"},{"key":"3_CR18","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"47","DOI":"10.1007\/11688839_5","volume-title":"Compiler Construction","author":"O. Lhot\u00e1k","year":"2006","unstructured":"Lhot\u00e1k, O., Hendren, L.: Context-Sensitive Points-to Analysis: Is It Worth It? In: Mycroft, A., Zeller, A. (eds.) CC 2006. LNCS, vol.\u00a03923, pp. 47\u201364. Springer, Heidelberg (2006)"},{"key":"3_CR19","unstructured":"Odersky, M.: The Scala Language Specification version 2.9. Tech. rep., EPFL, DRAFT (May 2011)"},{"key":"3_CR20","unstructured":"Odersky, M., Spoon, L., Venners, B.: Programming in Scala, 2nd edn. Artima Press (2012)"},{"issue":"3","key":"3_CR21","doi-asserted-by":"publisher","first-page":"216","DOI":"10.1109\/TSE.1979.234183","volume":"5","author":"B. Ryder","year":"1979","unstructured":"Ryder, B.: Constructing the call graph of a program. IEEE Transactions on Software Engineering\u00a05(3), 216\u2013226 (1979)","journal-title":"IEEE Transactions on Software Engineering"},{"key":"3_CR22","doi-asserted-by":"crossref","unstructured":"Sallenave, O., Ducourneau, R.: Lightweight generics in embedded systems through static analysis. In: LCTES, pp. 11\u201320 (2012)","DOI":"10.1145\/2248418.2248421"},{"key":"3_CR23","doi-asserted-by":"crossref","unstructured":"Sewe, A., Mezini, M., Sarimbekov, A., Binder, W.: Da capo con scala: design and analysis of a Scala benchmark suite for the Java virtual machine. In: OOPSLA, pp. 657\u2013676 (2011)","DOI":"10.1145\/2076021.2048118"},{"key":"3_CR24","unstructured":"Shivers, O.: Control-Flow Analysis of Higher-Order Languages. PhD thesis, CMU (May 1991)"},{"key":"3_CR25","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"435","DOI":"10.1007\/978-3-642-31057-7_20","volume-title":"ECOOP 2012 \u2013 Object-Oriented Programming","author":"M. Sridharan","year":"2012","unstructured":"Sridharan, M., Dolby, J., Chandra, S., Sch\u00e4fer, M., Tip, F.: Correlation Tracking for Points-To Analysis of JavaScript. In: Noble, J. (ed.) ECOOP 2012. LNCS, vol.\u00a07313, pp. 435\u2013458. Springer, Heidelberg (2012)"},{"issue":"4","key":"3_CR26","doi-asserted-by":"publisher","first-page":"355","DOI":"10.1145\/161494.161517","volume":"1","author":"A. Srivastava","year":"1992","unstructured":"Srivastava, A.: Unreachable procedures in object oriented programming. ACM Letters on Programming Languages and Systems\u00a01(4), 355\u2013364 (1992)","journal-title":"ACM Letters on Programming Languages and Systems"},{"key":"3_CR27","doi-asserted-by":"crossref","unstructured":"Tip, F., Palsberg, J.: OOPSLA, pp. 281\u2013293 (2000)","DOI":"10.1145\/354222.353190"},{"issue":"6","key":"3_CR28","doi-asserted-by":"publisher","first-page":"625","DOI":"10.1145\/586088.586090","volume":"24","author":"F. Tip","year":"2002","unstructured":"Tip, F., Sweeney, P.F., Laffra, C., Eisma, A., Streeter, D.: Practical extraction techniques for Java. ACM Trans. Program. Lang. Syst.\u00a024(6), 625\u2013666 (2002)","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"3_CR29","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"18","DOI":"10.1007\/3-540-46423-9_2","volume-title":"Compiler Construction","author":"R. Vall\u00e9e-Rai","year":"2000","unstructured":"Vall\u00e9e-Rai, R., Gagnon, E.M., Hendren, L., Lam, P., Pominville, P., Sundaresan, V.: Optimizing Java Bytecode Using the Soot Framework: Is It Feasible? In: Watt, D.A. (ed.) CC 2000. LNCS, vol.\u00a01781, pp. 18\u201334. Springer, Heidelberg (2000)"}],"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_3","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,5,27]],"date-time":"2019-05-27T06:32:52Z","timestamp":1558938772000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-662-44202-9_3"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014]]},"ISBN":["9783662442012","9783662442029"],"references-count":29,"URL":"https:\/\/doi.org\/10.1007\/978-3-662-44202-9_3","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2014]]}}}