{"id":"https://openalex.org/W1974608873","doi":"https://doi.org/10.1145/353171.353189","title":"Practical virtual method call resolution for Java","display_name":"Practical virtual method call resolution for Java","publication_year":2000,"publication_date":"2000-10-01","ids":{"openalex":"https://openalex.org/W1974608873","doi":"https://doi.org/10.1145/353171.353189","mag":"1974608873"},"language":"en","primary_location":{"is_oa":true,"landing_page_url":"https://doi.org/10.1145/353171.353189","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/353171.353189","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true},"type":"article","type_crossref":"proceedings-article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"bronze","oa_url":"https://dl.acm.org/doi/pdf/10.1145/353171.353189","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5017443088","display_name":"Vijay Sundaresan","orcid":"https://orcid.org/0009-0006-9342-4356"},"institutions":[{"id":"https://openalex.org/I5023651","display_name":"McGill University","ror":"https://ror.org/01pxwe438","country_code":"CA","type":"education","lineage":["https://openalex.org/I5023651"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Vijay Sundaresan","raw_affiliation_strings":["IBM Toronto and Sable Research Group, School of Computer Science, McGill University, Montreal, Quebec, Canada H3A 2A7#TAB#"],"affiliations":[{"raw_affiliation_string":"IBM Toronto and Sable Research Group, School of Computer Science, McGill University, Montreal, Quebec, Canada H3A 2A7#TAB#","institution_ids":["https://openalex.org/I5023651"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5039974849","display_name":"Laurie Hendren","orcid":"https://orcid.org/0000-0001-6755-9632"},"institutions":[{"id":"https://openalex.org/I5023651","display_name":"McGill University","ror":"https://ror.org/01pxwe438","country_code":"CA","type":"education","lineage":["https://openalex.org/I5023651"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Laurie Hendren","raw_affiliation_strings":["Sable Research Group, School of Computer Science, McGill University, Montreal, Quebec, Canada 3HA 2A7#TAB#"],"affiliations":[{"raw_affiliation_string":"Sable Research Group, School of Computer Science, McGill University, Montreal, Quebec, Canada 3HA 2A7#TAB#","institution_ids":["https://openalex.org/I5023651"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5004000258","display_name":"Chrislain Razafimahefa","orcid":null},"institutions":[{"id":"https://openalex.org/I5023651","display_name":"McGill University","ror":"https://ror.org/01pxwe438","country_code":"CA","type":"education","lineage":["https://openalex.org/I5023651"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Chrislain Razafimahefa","raw_affiliation_strings":["Sable Research Group, School of Computer Science, McGill University, Montreal, Quebec, Canada H3A 2A7 and University of Geneva#TAB#"],"affiliations":[{"raw_affiliation_string":"Sable Research Group, School of Computer Science, McGill University, Montreal, Quebec, Canada H3A 2A7 and University of Geneva#TAB#","institution_ids":["https://openalex.org/I5023651"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5013164412","display_name":"Raja Vall\u00e9e-Rai","orcid":null},"institutions":[{"id":"https://openalex.org/I5023651","display_name":"McGill University","ror":"https://ror.org/01pxwe438","country_code":"CA","type":"education","lineage":["https://openalex.org/I5023651"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Raja Vall\u00e9e-Rai","raw_affiliation_strings":["Sable Research Group, School of Computer Science, McGill University, Montreal, Quebec, Canada 3HA 2A7#TAB#"],"affiliations":[{"raw_affiliation_string":"Sable Research Group, School of Computer Science, McGill University, Montreal, Quebec, Canada 3HA 2A7#TAB#","institution_ids":["https://openalex.org/I5023651"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5016375266","display_name":"Patrick Lam","orcid":"https://orcid.org/0000-0001-8278-5400"},"institutions":[{"id":"https://openalex.org/I5023651","display_name":"McGill University","ror":"https://ror.org/01pxwe438","country_code":"CA","type":"education","lineage":["https://openalex.org/I5023651"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Patrick Lam","raw_affiliation_strings":["Sable Research Group, School of Computer Science, McGill University, Montreal, Quebec, Canada 3HA 2A7 and MIT"],"affiliations":[{"raw_affiliation_string":"Sable Research Group, School of Computer Science, McGill University, Montreal, Quebec, Canada 3HA 2A7 and MIT","institution_ids":["https://openalex.org/I5023651"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5016321422","display_name":"\u00c9tienne Gagnon","orcid":"https://orcid.org/0000-0001-5815-9768"},"institutions":[{"id":"https://openalex.org/I5023651","display_name":"McGill University","ror":"https://ror.org/01pxwe438","country_code":"CA","type":"education","lineage":["https://openalex.org/I5023651"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Etienne Gagnon","raw_affiliation_strings":["Sable Research Group, School of Computer Science, McGill University, Montreal, Quebec, Canada 3HA 2A7#TAB#"],"affiliations":[{"raw_affiliation_string":"Sable Research Group, School of Computer Science, McGill University, Montreal, Quebec, Canada 3HA 2A7#TAB#","institution_ids":["https://openalex.org/I5023651"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5067626992","display_name":"Charles Godin","orcid":null},"institutions":[{"id":"https://openalex.org/I5023651","display_name":"McGill University","ror":"https://ror.org/01pxwe438","country_code":"CA","type":"education","lineage":["https://openalex.org/I5023651"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Charles Godin","raw_affiliation_strings":["Sable Research Group, School of Computer Science, McGill University, Montreal, Quebec, Canada 3HA 2A7#TAB#"],"affiliations":[{"raw_affiliation_string":"Sable Research Group, School of Computer Science, McGill University, Montreal, Quebec, Canada 3HA 2A7#TAB#","institution_ids":["https://openalex.org/I5023651"]}]}],"institution_assertions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":15.15,"has_fulltext":true,"fulltext_origin":"pdf","cited_by_count":293,"citation_normalized_percentile":{"value":0.983829,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":98,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"264","last_page":"280"},"is_retracted":false,"is_paratext":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9995,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9995,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9994,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9985,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/bytecode","display_name":"Bytecode","score":0.8562026},{"id":"https://openalex.org/keywords/call-graph","display_name":"Call graph","score":0.74978685},{"id":"https://openalex.org/keywords/benchmark","display_name":"Benchmark (surveying)","score":0.5688694},{"id":"https://openalex.org/keywords/class-hierarchy","display_name":"Class hierarchy","score":0.55231285},{"id":"https://openalex.org/keywords/dependence-analysis","display_name":"Dependence analysis","score":0.4500544},{"id":"https://openalex.org/keywords/call-stack","display_name":"Call stack","score":0.42477196}],"concepts":[{"id":"https://openalex.org/C2779818221","wikidata":"https://www.wikidata.org/wiki/Q837330","display_name":"Bytecode","level":3,"score":0.8562026},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.84837574},{"id":"https://openalex.org/C102379954","wikidata":"https://www.wikidata.org/wiki/Q2589940","display_name":"Call graph","level":2,"score":0.74978685},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.70354885},{"id":"https://openalex.org/C98183937","wikidata":"https://www.wikidata.org/wiki/Q2112188","display_name":"Program analysis","level":2,"score":0.6676498},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.61459076},{"id":"https://openalex.org/C185798385","wikidata":"https://www.wikidata.org/wiki/Q1161707","display_name":"Benchmark (surveying)","level":2,"score":0.5688694},{"id":"https://openalex.org/C182365436","wikidata":"https://www.wikidata.org/wiki/Q50701","display_name":"Variable (mathematics)","level":2,"score":0.5671604},{"id":"https://openalex.org/C2781289151","wikidata":"https://www.wikidata.org/wiki/Q2903989","display_name":"Class hierarchy","level":3,"score":0.55231285},{"id":"https://openalex.org/C31170391","wikidata":"https://www.wikidata.org/wiki/Q188619","display_name":"Hierarchy","level":2,"score":0.45006716},{"id":"https://openalex.org/C27390822","wikidata":"https://www.wikidata.org/wiki/Q320724","display_name":"Dependence analysis","level":2,"score":0.4500544},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.44340953},{"id":"https://openalex.org/C119024030","wikidata":"https://www.wikidata.org/wiki/Q759899","display_name":"Call stack","level":3,"score":0.42477196},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.41032818},{"id":"https://openalex.org/C113775141","wikidata":"https://www.wikidata.org/wiki/Q428691","display_name":"Computer engineering","level":1,"score":0.37490696},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.36269385},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.32900423},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.12156218},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.11462128},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0},{"id":"https://openalex.org/C13280743","wikidata":"https://www.wikidata.org/wiki/Q131089","display_name":"Geodesy","level":1,"score":0.0},{"id":"https://openalex.org/C162324750","wikidata":"https://www.wikidata.org/wiki/Q8134","display_name":"Economics","level":0,"score":0.0},{"id":"https://openalex.org/C9395851","wikidata":"https://www.wikidata.org/wiki/Q177929","display_name":"Stack (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C34447519","wikidata":"https://www.wikidata.org/wiki/Q179522","display_name":"Market economy","level":1,"score":0.0},{"id":"https://openalex.org/C205649164","wikidata":"https://www.wikidata.org/wiki/Q1071","display_name":"Geography","level":0,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"is_oa":true,"landing_page_url":"https://doi.org/10.1145/353171.353189","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/353171.353189","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true},{"is_oa":true,"landing_page_url":"https://archive-ouverte.unige.ch/unige:155911","pdf_url":"https://access.archive-ouverte.unige.ch/access/metadata/56f27ea0-bb6c-4815-859e-dfeb42ee190d/download","source":null,"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"publishedVersion","is_accepted":true,"is_published":true},{"is_oa":true,"landing_page_url":"http://www.archipel.uqam.ca/8367/1/Gagnon-2000a-preprint.pdf","pdf_url":"http://www.archipel.uqam.ca/8367/1/Gagnon-2000a-preprint.pdf","source":{"id":"https://openalex.org/S4306401005","display_name":"Archipelago (Universit\u00e9 du Qu\u00e9bec \u00e0 Montr\u00e9al)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I4210093668","host_organization_name":"Quebec Intensive Silviculture Network","host_organization_lineage":["https://openalex.org/I4210093668"],"host_organization_lineage_names":["Quebec Intensive Silviculture Network"],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false}],"best_oa_location":{"is_oa":true,"landing_page_url":"https://doi.org/10.1145/353171.353189","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/353171.353189","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true},"sustainable_development_goals":[],"grants":[],"datasets":[],"versions":[],"referenced_works_count":39,"referenced_works":["https://openalex.org/W10127936","https://openalex.org/W1487893282","https://openalex.org/W1498914194","https://openalex.org/W1508742040","https://openalex.org/W1536265389","https://openalex.org/W1602885681","https://openalex.org/W1604666619","https://openalex.org/W1637758212","https://openalex.org/W1797940162","https://openalex.org/W1922020944","https://openalex.org/W1966831167","https://openalex.org/W1969747522","https://openalex.org/W1974604404","https://openalex.org/W1987809485","https://openalex.org/W1993318777","https://openalex.org/W2000194923","https://openalex.org/W2007146206","https://openalex.org/W2017971446","https://openalex.org/W2021085621","https://openalex.org/W2051600169","https://openalex.org/W2057085278","https://openalex.org/W2067872353","https://openalex.org/W2072964972","https://openalex.org/W2076063371","https://openalex.org/W2086457189","https://openalex.org/W2091909330","https://openalex.org/W2093334386","https://openalex.org/W2093760065","https://openalex.org/W2095390121","https://openalex.org/W2119077081","https://openalex.org/W2127172188","https://openalex.org/W2131135493","https://openalex.org/W2142547405","https://openalex.org/W2161044171","https://openalex.org/W2163627399","https://openalex.org/W2171240827","https://openalex.org/W2181943201","https://openalex.org/W4250199140","https://openalex.org/W4253189236"],"related_works":["https://openalex.org/W3213724464","https://openalex.org/W3172035225","https://openalex.org/W3005412289","https://openalex.org/W2391505280","https://openalex.org/W2293062955","https://openalex.org/W2135849267","https://openalex.org/W2120320613","https://openalex.org/W1991206705","https://openalex.org/W1974608873","https://openalex.org/W1914347863"],"abstract_inverted_index":{"This":[0],"paper":[1],"addresses":[2],"the":[3,54,57,61,116,119,127,193,210,221],"problem":[4],"of":[5,56,84,98,118,178,204,260],"resolving":[6],"virtual":[7],"method":[8],"and":[9,49,77,90,106,130,154,181,228],"interface":[10],"calls":[11],"in":[12,115],"Java":[13],"bytecode.":[14],"The":[15],"main":[16],"focus":[17],"is":[18],"on":[19,133,209],"a":[20,39,91,160,175],"new":[21,86,124,170,230],"practical":[22],"technique":[23,40],"that":[24,41,111,157,188,217],"can":[25,42,173,190],"be":[26,43],"used":[27,141],"to":[28,37,104,144,159],"analyze":[29],"large":[30],"applications.":[31],"Our":[32],"fundamental":[33],"design":[34],"goal":[35],"was":[36],"develop":[38],"solved":[44],"with":[45,53,256],"only":[46,220],"one":[47],"iteration,":[48],"thus":[50],"scales":[51],"linearly":[52,114],"size":[55,117],"program,":[58],"while":[59],"at":[60],"same":[62],"time":[63],"providing":[64],"more":[65,250,257],"accurate":[66,146],"results":[67,109,135,186],"than":[68],"two":[69,82],"popular":[70],"existing":[71],"linear":[72],"techniques,":[73],"class":[74,166,239],"hierarchy":[75,167,240],"analysis":[76,89,172,227,232,246],"rapid":[78,197,225],"type":[79,198,226],"analysis.We":[80,199],"present":[81],"variations":[83],"our":[85,107,123,142,169,185,229,243],"technique,":[87],"variable-type":[88,171,245],"coarser-grain":[92],"version":[93],"called":[94],"declared-type":[95,231],"analysis.":[96,241],"Both":[97],"these":[99],"analyses":[100,125],"are":[101],"inexpensive,":[102],"easy":[103],"implement,":[105],"experimental":[108],"show":[110,156,187],"they":[112],"scale":[113],"program.We":[120],"have":[121,140],"implemented":[122],"using":[126,165,196],"Soot":[128],"frame-work,":[129],"we":[131,155,189],"report":[132],"empirical":[134],"for":[136,149,254],"seven":[137],"benchmarks.":[138],"We":[139,215],"techniques":[143],"build":[145],"call":[147,162,182,206,251],"graphs":[148],"complete":[150],"applications":[151],"(including":[152],"libraries)":[153],"compared":[158],"conservative":[161],"graph":[163],"built":[164],"analysis,":[168],"remove":[174],"significant":[176],"number":[177],"nodes":[179],"(methods)":[180],"edges.":[183],"Further,":[184],"improve":[191],"upon":[192],"compression":[194],"obtained":[195],"also":[200],"provide":[201],"dynamic":[202],"measurements":[203],"monomorphic":[205],"sites,":[207,252],"focusing":[208],"benchmark":[211,222],"code":[212],"excluding":[213],"libraries.":[214],"demonstrate":[216],"when":[218],"considering":[219],"code,":[223],"both":[224],"do":[233],"not":[234],"add":[235],"much":[236],"precision":[237],"over":[238],"However,":[242],"finer-grained":[244],"does":[247],"resolve":[248],"significantly":[249],"particularly":[253],"programs":[255],"complex":[258],"uses":[259],"objects.":[261]},"cited_by_api_url":"https://api.openalex.org/works?filter=cites:W1974608873","counts_by_year":[{"year":2024,"cited_by_count":4},{"year":2023,"cited_by_count":11},{"year":2022,"cited_by_count":4},{"year":2021,"cited_by_count":9},{"year":2020,"cited_by_count":6},{"year":2019,"cited_by_count":9},{"year":2018,"cited_by_count":8},{"year":2017,"cited_by_count":12},{"year":2016,"cited_by_count":6},{"year":2015,"cited_by_count":13},{"year":2014,"cited_by_count":10},{"year":2013,"cited_by_count":15},{"year":2012,"cited_by_count":8}],"updated_date":"2025-01-16T03:41:53.105582","created_date":"2016-06-24"}