{"id":"https://openalex.org/W2997903896","doi":"https://doi.org/10.1109/tse.2019.2956925","title":"A Study of Call Graph Construction for JVM-Hosted Languages","display_name":"A Study of Call Graph Construction for JVM-Hosted Languages","publication_year":2019,"publication_date":"2019-12-27","ids":{"openalex":"https://openalex.org/W2997903896","doi":"https://doi.org/10.1109/tse.2019.2956925","mag":"2997903896"},"language":"en","primary_location":{"id":"doi:10.1109/tse.2019.2956925","is_oa":true,"landing_page_url":"https://doi.org/10.1109/tse.2019.2956925","pdf_url":"https://ieeexplore.ieee.org/ielx7/32/9646454/08944149.pdf","source":{"id":"https://openalex.org/S8351582","display_name":"IEEE Transactions on Software Engineering","issn_l":"0098-5589","issn":["0098-5589","1939-3520","2326-3881"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320439","host_organization_name":"IEEE Computer Society","host_organization_lineage":["https://openalex.org/P4310320439","https://openalex.org/P4310319808"],"host_organization_lineage_names":["IEEE Computer Society","Institute of Electrical and Electronics Engineers"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"IEEE Transactions on Software Engineering","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"hybrid","oa_url":"https://ieeexplore.ieee.org/ielx7/32/9646454/08944149.pdf","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5038781215","display_name":"Karim Ali","orcid":"https://orcid.org/0000-0002-5516-1376"},"institutions":[{"id":"https://openalex.org/I154425047","display_name":"University of Alberta","ror":"https://ror.org/0160cpw27","country_code":"CA","type":"education","lineage":["https://openalex.org/I154425047"]}],"countries":["CA"],"is_corresponding":true,"raw_author_name":"Karim Ali","raw_affiliation_strings":["Department of Computing Science, University of Alberta, Edmonton, AB, Canada"],"affiliations":[{"raw_affiliation_string":"Department of Computing Science, University of Alberta, Edmonton, AB, Canada","institution_ids":["https://openalex.org/I154425047"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5049677934","display_name":"Xiaoni Lai","orcid":"https://orcid.org/0000-0001-8881-1278"},"institutions":[{"id":"https://openalex.org/I4210148186","display_name":"Google (Canada)","ror":"https://ror.org/04d06q394","country_code":"CA","type":"company","lineage":["https://openalex.org/I1291425158","https://openalex.org/I4210128969","https://openalex.org/I4210148186"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Xiaoni Lai","raw_affiliation_strings":["Google, Waterloo, ON, Canada"],"affiliations":[{"raw_affiliation_string":"Google, Waterloo, ON, Canada","institution_ids":["https://openalex.org/I4210148186"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5020152748","display_name":"Zhaoyi Luo","orcid":"https://orcid.org/0009-0009-5468-6152"},"institutions":[{"id":"https://openalex.org/I1290206253","display_name":"Microsoft (United States)","ror":"https://ror.org/00d0nc645","country_code":"US","type":"company","lineage":["https://openalex.org/I1290206253"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Zhaoyi Luo","raw_affiliation_strings":["Microsoft, Redmond, WA, USA"],"affiliations":[{"raw_affiliation_string":"Microsoft, Redmond, WA, USA","institution_ids":["https://openalex.org/I1290206253"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5039616179","display_name":"Ond\u0159ej Lhot\u00e1k","orcid":"https://orcid.org/0000-0001-9066-1889"},"institutions":[{"id":"https://openalex.org/I151746483","display_name":"University of Waterloo","ror":"https://ror.org/01aff2v68","country_code":"CA","type":"education","lineage":["https://openalex.org/I151746483"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Ondrej Lhotak","raw_affiliation_strings":["David R. Cheriton School of Computer Science, University of Waterloo, Waterloo, ON, Canada"],"affiliations":[{"raw_affiliation_string":"David R. Cheriton School of Computer Science, University of Waterloo, Waterloo, ON, Canada","institution_ids":["https://openalex.org/I151746483"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5012855077","display_name":"Julian Dolby","orcid":"https://orcid.org/0000-0002-6658-2678"},"institutions":[{"id":"https://openalex.org/I1341412227","display_name":"IBM (United States)","ror":"https://ror.org/05hh8d621","country_code":"US","type":"company","lineage":["https://openalex.org/I1341412227"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Julian Dolby","raw_affiliation_strings":["IBM Research, Yorktown Heights, NY, USA"],"affiliations":[{"raw_affiliation_string":"IBM Research, Yorktown Heights, NY, USA","institution_ids":["https://openalex.org/I1341412227"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5087594876","display_name":"Frank Tip","orcid":"https://orcid.org/0000-0002-1862-3498"},"institutions":[{"id":"https://openalex.org/I12912129","display_name":"Northeastern University","ror":"https://ror.org/04t5xt781","country_code":"US","type":"education","lineage":["https://openalex.org/I12912129"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Frank Tip","raw_affiliation_strings":["Khoury College of Computer Sciences, Northeastern University, Boston, MA, USA"],"affiliations":[{"raw_affiliation_string":"Khoury College of Computer Sciences, Northeastern University, Boston, MA, USA","institution_ids":["https://openalex.org/I12912129"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":6,"corresponding_author_ids":["https://openalex.org/A5038781215"],"corresponding_institution_ids":["https://openalex.org/I154425047"],"apc_list":null,"apc_paid":null,"fwci":1.161,"has_fulltext":true,"cited_by_count":12,"citation_normalized_percentile":{"value":0.80011047,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":97},"biblio":{"volume":"47","issue":"12","first_page":"2644","last_page":"2666"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9991000294685364,"subfield":{"id":"https://openalex.org/subfields/1711","display_name":"Signal Processing"},"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/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9991000294685364,"subfield":{"id":"https://openalex.org/subfields/1711","display_name":"Signal Processing"},"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/T11424","display_name":"Security and Verification in Computing","score":0.9991000294685364,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9987999796867371,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8970514535903931},{"id":"https://openalex.org/keywords/bytecode","display_name":"Bytecode","score":0.8616769313812256},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.8325892090797424},{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.72162926197052},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.640436053276062},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.5628160238265991},{"id":"https://openalex.org/keywords/call-graph","display_name":"Call graph","score":0.5387199521064758},{"id":"https://openalex.org/keywords/java-bytecode","display_name":"Java bytecode","score":0.5227765440940857},{"id":"https://openalex.org/keywords/virtual-machine","display_name":"Virtual machine","score":0.41482430696487427},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.39574864506721497},{"id":"https://openalex.org/keywords/java-annotation","display_name":"Java annotation","score":0.2887882590293884},{"id":"https://openalex.org/keywords/java-applet","display_name":"Java applet","score":0.23421689867973328}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8970514535903931},{"id":"https://openalex.org/C2779818221","wikidata":"https://www.wikidata.org/wiki/Q837330","display_name":"Bytecode","level":3,"score":0.8616769313812256},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8325892090797424},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.72162926197052},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.640436053276062},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.5628160238265991},{"id":"https://openalex.org/C102379954","wikidata":"https://www.wikidata.org/wiki/Q2589940","display_name":"Call graph","level":2,"score":0.5387199521064758},{"id":"https://openalex.org/C2777472213","wikidata":"https://www.wikidata.org/wiki/Q137496","display_name":"Java bytecode","level":5,"score":0.5227765440940857},{"id":"https://openalex.org/C25344961","wikidata":"https://www.wikidata.org/wiki/Q192726","display_name":"Virtual machine","level":2,"score":0.41482430696487427},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.39574864506721497},{"id":"https://openalex.org/C168702491","wikidata":"https://www.wikidata.org/wiki/Q567345","display_name":"Java annotation","level":4,"score":0.2887882590293884},{"id":"https://openalex.org/C15524039","wikidata":"https://www.wikidata.org/wiki/Q865817","display_name":"Java applet","level":3,"score":0.23421689867973328}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1109/tse.2019.2956925","is_oa":true,"landing_page_url":"https://doi.org/10.1109/tse.2019.2956925","pdf_url":"https://ieeexplore.ieee.org/ielx7/32/9646454/08944149.pdf","source":{"id":"https://openalex.org/S8351582","display_name":"IEEE Transactions on Software Engineering","issn_l":"0098-5589","issn":["0098-5589","1939-3520","2326-3881"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320439","host_organization_name":"IEEE Computer Society","host_organization_lineage":["https://openalex.org/P4310320439","https://openalex.org/P4310319808"],"host_organization_lineage_names":["IEEE Computer Society","Institute of Electrical and Electronics Engineers"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"IEEE Transactions on Software Engineering","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1109/tse.2019.2956925","is_oa":true,"landing_page_url":"https://doi.org/10.1109/tse.2019.2956925","pdf_url":"https://ieeexplore.ieee.org/ielx7/32/9646454/08944149.pdf","source":{"id":"https://openalex.org/S8351582","display_name":"IEEE Transactions on Software Engineering","issn_l":"0098-5589","issn":["0098-5589","1939-3520","2326-3881"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320439","host_organization_name":"IEEE Computer Society","host_organization_lineage":["https://openalex.org/P4310320439","https://openalex.org/P4310319808"],"host_organization_lineage_names":["IEEE Computer Society","Institute of Electrical and Electronics Engineers"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"IEEE Transactions on Software Engineering","raw_type":"journal-article"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/9","score":0.6100000143051147,"display_name":"Industry, innovation and infrastructure"}],"awards":[{"id":"https://openalex.org/G154579872","display_name":null,"funder_award_id":"CCF-1715153","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G8928530672","display_name":null,"funder_award_id":"N00014-17-1-2945","funder_id":"https://openalex.org/F4320337345","funder_display_name":"Office of Naval Research"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"},{"id":"https://openalex.org/F4320334593","display_name":"Natural Sciences and Engineering Research Council of Canada","ror":"https://ror.org/01h531d29"},{"id":"https://openalex.org/F4320336370","display_name":"Ontario Ministry of Research and Innovation","ror":null},{"id":"https://openalex.org/F4320337345","display_name":"Office of Naval Research","ror":"https://ror.org/00rk2pe57"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2997903896.pdf","grobid_xml":"https://content.openalex.org/works/W2997903896.grobid-xml"},"referenced_works_count":54,"referenced_works":["https://openalex.org/W64230621","https://openalex.org/W136002940","https://openalex.org/W1496155669","https://openalex.org/W1529316320","https://openalex.org/W1536265389","https://openalex.org/W1557543533","https://openalex.org/W1763336997","https://openalex.org/W1777693579","https://openalex.org/W1876091941","https://openalex.org/W1967470145","https://openalex.org/W1967716562","https://openalex.org/W1976499711","https://openalex.org/W1983318942","https://openalex.org/W1994823367","https://openalex.org/W1999753800","https://openalex.org/W2009678128","https://openalex.org/W2023274008","https://openalex.org/W2023753091","https://openalex.org/W2033197452","https://openalex.org/W2039690203","https://openalex.org/W2059390719","https://openalex.org/W2070310827","https://openalex.org/W2077956834","https://openalex.org/W2084845478","https://openalex.org/W2094269821","https://openalex.org/W2095802649","https://openalex.org/W2100886660","https://openalex.org/W2115787393","https://openalex.org/W2117426803","https://openalex.org/W2119976524","https://openalex.org/W2125357166","https://openalex.org/W2125710959","https://openalex.org/W2127172188","https://openalex.org/W2133546079","https://openalex.org/W2137786709","https://openalex.org/W2140021378","https://openalex.org/W2142867733","https://openalex.org/W2155621670","https://openalex.org/W2166091242","https://openalex.org/W2167363133","https://openalex.org/W2181943201","https://openalex.org/W2876719183","https://openalex.org/W2897025578","https://openalex.org/W2909110209","https://openalex.org/W2999339527","https://openalex.org/W3207171446","https://openalex.org/W4247387602","https://openalex.org/W4247889999","https://openalex.org/W4250199140","https://openalex.org/W6629764946","https://openalex.org/W6631874003","https://openalex.org/W6638085149","https://openalex.org/W6638236474","https://openalex.org/W6766329935"],"related_works":["https://openalex.org/W1509153591","https://openalex.org/W2027642766","https://openalex.org/W20625830","https://openalex.org/W3213724464","https://openalex.org/W2293062955","https://openalex.org/W4252881265","https://openalex.org/W2139643778","https://openalex.org/W1677933461","https://openalex.org/W4229020158","https://openalex.org/W2997903896"],"abstract_inverted_index":{"Call":[0],"graphs":[1,22,164],"have":[2],"many":[3],"applications":[4],"in":[5,15,26,129,231],"software":[6],"engineering,":[7],"including":[8],"bug-finding,":[9,142],"security":[10,143],"analysis,":[11,144],"and":[12,43,50,101,145,154,160,172,178,198,216],"code":[13,218],"navigation":[14],"IDEs.":[16],"However,":[17,180],"the":[18,38,158,191,207,221],"construction":[19,110],"of":[20,33,56,157,162,194,210],"call":[21,108,163,203,234],"requires":[23],"significant":[24],"investment":[25],"program":[27,44,57],"analysis":[28,45,58,118,134],"infrastructure.":[29],"An":[30],"increasing":[31],"number":[32],"programming":[34],"languages":[35,113],"compile":[36],"to":[37,69,74,126,206,237],"Java":[39,78],"Virtual":[40],"Machine":[41],"(JVM),":[42],"frameworks":[46],"such":[47],"as":[48,137],"WALA":[49],"SOOT":[51],"support":[52],"a":[53],"broad":[54],"range":[55],"algorithms":[59],"by":[60,226],"analyzing":[61],"JVM":[62,167],"bytecode.":[63],"This":[64],"approach":[65],"has":[66],"been":[67],"shown":[68],"work":[70],"well":[71,89],"when":[72],"applied":[73],"bytecode":[75],"produced":[76],"from":[77,166],"code.":[79],"In":[80,189],"this":[81],"paper,":[82],"we":[83,106,181],"show":[84,183],"that":[85,132,184],"it":[86],"also":[87,173,182],"works":[88],"for":[90,111,114,120,141,148,169,174],"diverse":[91],"other":[92],"JVM-hosted":[93,192],"languages:":[94],"dynamically-typed":[95],"functional":[96,103],"Scheme,":[97],"statically-typed":[98],"object-oriented":[99],"Scala,":[100],"polymorphic":[102],"OCaml.":[104],"Effectively,":[105],"get":[107],"graph":[109],"these":[112,149,170,227],"free,":[115],"using":[116],"existing":[117],"infrastructure":[119],"Java,":[121],"with":[122,240],"only":[123],"minor":[124],"challenges":[125],"soundness.":[127],"This,":[128],"turn,":[130],"suggests":[131],"bytecode-based":[133],"could":[135],"serve":[136],"an":[138],"implementation":[139,185],"vehicle":[140],"IDE":[146],"features":[147],"languages.":[150],"We":[151],"present":[152],"qualitative":[153],"quantitative":[155],"analyses":[156],"soundness":[159],"precision":[161],"constructed":[165],"bytecodes":[168],"languages,":[171,228],"Groovy,":[175,195],"Clojure,":[176,196],"Python,":[177,197],"Ruby.":[179],"details":[186],"matter":[187],"greatly.":[188],"particular,":[190],"implementations":[193],"Ruby":[199],"produce":[200],"very":[201],"unsound":[202,232],"graphs,":[204,235],"due":[205],"pervasive":[208],"use":[209],"reflection,":[211],"<monospace":[212],"xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"":[213],"xmlns:xlink=\"http://www.w3.org/1999/xlink\">invokedynamic</monospace>":[214],"instructions,":[215],"run-time":[217],"generation.":[219],"Interestingly,":[220],"dynamic":[222],"translation":[223],"schemes":[224],"employed":[225],"which":[229],"result":[230],"static":[233],"tend":[236],"be":[238],"correlated":[239],"poor":[241],"performance":[242],"at":[243],"run":[244],"time.":[245]},"counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":4},{"year":2022,"cited_by_count":1},{"year":2021,"cited_by_count":4},{"year":2020,"cited_by_count":2}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
