{"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","doi":"https://doi.org/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,"listed_in":["cwts-core","jufo-3","norway-2"],"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"},"volume":null,"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","observed_orcids":["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":false,"raw_author_name":"Karim Ali","raw_affiliation_strings":["Department of Computing Science, University of Alberta, Edmonton, AB, Canada"],"raw_orcid":"https://orcid.org/0000-0002-5516-1376","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","observed_orcids":["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"],"raw_orcid":"https://orcid.org/0000-0001-8881-1278","affiliations":[{"raw_affiliation_string":"Google, Waterloo, ON, Canada","institution_ids":["https://openalex.org/I4210148186"]}]},{"author_position":"middle","author":{"id":null,"display_name":"Zhaoyi Luo","orcid":null,"observed_orcids":[]},"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"],"raw_orcid":null,"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","observed_orcids":["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"],"raw_orcid":"https://orcid.org/0000-0001-9066-1889","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","observed_orcids":["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"]},{"id":"https://openalex.org/I4210114115","display_name":"IBM Research - Thomas J. Watson Research Center","ror":"https://ror.org/0265w5591","country_code":"US","type":"facility","lineage":["https://openalex.org/I1341412227","https://openalex.org/I4210114115"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Julian Dolby","raw_affiliation_strings":["IBM Research, Yorktown Heights, NY, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"IBM Research, Yorktown Heights, NY, USA","institution_ids":["https://openalex.org/I1341412227","https://openalex.org/I4210114115"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5087594876","display_name":"Frank Tip","orcid":"https://orcid.org/0000-0002-1862-3498","observed_orcids":["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"],"raw_orcid":"https://orcid.org/0000-0002-1862-3498","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":7,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":{"value":2045,"currency":"USD","value_usd":2045},"apc_paid":{"value":2045,"currency":"USD","value_usd":2045},"fwci":0.8029,"has_fulltext":true,"cited_by_count":13,"citation_normalized_percentile":{"value":0.77513907,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":88,"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/T10126","display_name":"Logic, programming, and type systems","score":0.8817999958992004,"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.8817999958992004,"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.06840000301599503,"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"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.039900001138448715,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/call-graph-construction","display_name":"call graph construction","score":0.996999979019165},{"id":"https://openalex.org/keywords/java-virtual-machine","display_name":"Java Virtual Machine","score":0.8920000195503235},{"id":"https://openalex.org/keywords/bytecode-analysis","display_name":"bytecode analysis","score":0.7059999704360962},{"id":"https://openalex.org/keywords/scheme","display_name":"Scheme","score":0.5289999842643738},{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.9990000128746033},{"id":"https://openalex.org/keywords/ocaml","display_name":"OCaml","score":0.9940000176429749},{"id":"https://openalex.org/keywords/groovy","display_name":"Groovy","score":0.9829999804496765},{"id":"https://openalex.org/keywords/clojure","display_name":"Clojure","score":1.0},{"id":"https://openalex.org/keywords/python","display_name":"Python","score":0.9070000052452087},{"id":"https://openalex.org/keywords/ruby","display_name":"ruby","score":0.9990000128746033},{"id":"https://openalex.org/keywords/dynamic-translation","display_name":"dynamic translation","score":0.5789999961853027},{"id":"https://openalex.org/keywords/reflection","display_name":"reflection","score":0.8460000157356262},{"id":"https://openalex.org/keywords/runtime-code-generation","display_name":"runtime code generation","score":0.9139999747276306},{"id":"https://openalex.org/keywords/bug-finding","display_name":"bug detection","score":0.6690000295639038},{"id":"https://openalex.org/keywords/security-assessment","display_name":"security analysis","score":0.9380000233650208}],"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","doi":"https://doi.org/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,"listed_in":["cwts-core","jufo-3","norway-2"],"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","doi":"https://doi.org/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,"listed_in":["cwts-core","jufo-3","norway-2"],"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":[],"sustainable_development_goals_aurora":[{"id":"https://metadata.un.org/sdg/9","display_name":"Industry, innovation and infrastructure","score":0.6100000143051147}],"study_designs":[],"awards":[{"id":"https://openalex.org/G4504108201","display_name":null,"funder_award_id":"N00014-17-1","funder_id":"https://openalex.org/F4320337345","funder_display_name":"Office of Naval Research"},{"id":"https://openalex.org/G7726608270","display_name":"SHF: Small: Automated Detection and Repair of Errors in Event-Driven Applications","funder_award_id":"1715153","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G8876996369","display_name":null,"funder_award_id":"N00014","funder_id":"https://openalex.org/F4320337345","funder_display_name":"Office of Naval Research"},{"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,227],"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,212],"code":[13,214],"navigation":[14],"IDEs.":[16],"However,":[17,180],"the":[18,38,158,191,207,217],"construction":[19,110],"of":[20,33,56,157,162,194,210],"call":[21,108,163,203,230],"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,233],"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,222],"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,223],"free,":[115],"using":[116],"existing":[117],"infrastructure":[119],"Java,":[121],"with":[122,236],"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,224],"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,228],"graphs,":[204,231],"due":[205],"pervasive":[208],"use":[209],"reflection,invokedynamicinstructions,":[211],"run-time":[213],"generation.":[215],"Interestingly,":[216],"dynamic":[218],"translation":[219],"schemes":[220],"employed":[221],"which":[225],"result":[226],"static":[229],"tend":[232],"be":[234],"correlated":[235],"poor":[237],"performance":[238],"at":[239],"run":[240],"time.":[241]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"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":"2026-10-02T10:15:12.560889","created_date":"2025-10-10T00:00:00"}
