Matches in SemOpenAlex for { <https://semopenalex.org/work/W2997903896> ?p ?o ?g. }
- W2997903896 endingPage "2666" @default.
- W2997903896 startingPage "2644" @default.
- W2997903896 abstract "Call graphs have many applications in software engineering, including bug-finding, security analysis, and code navigation in IDEs. However, the construction of call graphs requires significant investment in program analysis infrastructure. An increasing number of programming languages compile to the Java Virtual Machine (JVM), and program analysis frameworks such as WALA and SOOT support a broad range of program analysis algorithms by analyzing JVM bytecode. This approach has been shown to work well when applied to bytecode produced from Java code. In this paper, we show that it also works well for diverse other JVM-hosted languages: dynamically-typed functional Scheme, statically-typed object-oriented Scala, and polymorphic functional OCaml. Effectively, we get call graph construction for these languages for free, using existing analysis infrastructure for Java, with only minor challenges to soundness. This, in turn, suggests that bytecode-based analysis could serve as an implementation vehicle for bug-finding, security analysis, and IDE features for these languages. We present qualitative and quantitative analyses of the soundness and precision of call graphs constructed from JVM bytecodes for these languages, and also for Groovy, Clojure, Python, and Ruby. However, we also show that implementation details matter greatly. In particular, the JVM-hosted implementations of Groovy, Clojure, Python, and Ruby produce very unsound call graphs, due to the pervasive use of reflection, <monospace xmlns:mml=http://www.w3.org/1998/Math/MathML xmlns:xlink=http://www.w3.org/1999/xlink>invokedynamic</monospace> instructions, and run-time code generation. Interestingly, the dynamic translation schemes employed by these languages, which result in unsound static call graphs, tend to be correlated with poor performance at run time." @default.
- W2997903896 created "2020-01-10" @default.
- W2997903896 creator A5012855077 @default.
- W2997903896 creator A5020152748 @default.
- W2997903896 creator A5038781215 @default.
- W2997903896 creator A5039616179 @default.
- W2997903896 creator A5049677934 @default.
- W2997903896 creator A5087594876 @default.
- W2997903896 date "2021-12-01" @default.
- W2997903896 modified "2023-10-17" @default.
- W2997903896 title "A Study of Call Graph Construction for JVM-Hosted Languages" @default.
- W2997903896 cites W136002940 @default.
- W2997903896 cites W1536265389 @default.
- W2997903896 cites W1557543533 @default.
- W2997903896 cites W1967470145 @default.
- W2997903896 cites W1967716562 @default.
- W2997903896 cites W1976499711 @default.
- W2997903896 cites W1983318942 @default.
- W2997903896 cites W1994823367 @default.
- W2997903896 cites W1999753800 @default.
- W2997903896 cites W2009678128 @default.
- W2997903896 cites W2023274008 @default.
- W2997903896 cites W2033197452 @default.
- W2997903896 cites W2059390719 @default.
- W2997903896 cites W2077956834 @default.
- W2997903896 cites W2084845478 @default.
- W2997903896 cites W2094269821 @default.
- W2997903896 cites W2095802649 @default.
- W2997903896 cites W2100886660 @default.
- W2997903896 cites W2115787393 @default.
- W2997903896 cites W2117426803 @default.
- W2997903896 cites W2119976524 @default.
- W2997903896 cites W2125357166 @default.
- W2997903896 cites W2125710959 @default.
- W2997903896 cites W2133546079 @default.
- W2997903896 cites W2137786709 @default.
- W2997903896 cites W2140021378 @default.
- W2997903896 cites W2142867733 @default.
- W2997903896 cites W2155621670 @default.
- W2997903896 cites W2166091242 @default.
- W2997903896 cites W2167363133 @default.
- W2997903896 cites W2181943201 @default.
- W2997903896 cites W2876719183 @default.
- W2997903896 cites W2897025578 @default.
- W2997903896 cites W2909110209 @default.
- W2997903896 cites W4247387602 @default.
- W2997903896 cites W4247889999 @default.
- W2997903896 cites W4250199140 @default.
- W2997903896 doi "https://doi.org/10.1109/tse.2019.2956925" @default.
- W2997903896 hasPublicationYear "2021" @default.
- W2997903896 type Work @default.
- W2997903896 sameAs 2997903896 @default.
- W2997903896 citedByCount "7" @default.
- W2997903896 countsByYear W29979038962021 @default.
- W2997903896 countsByYear W29979038962023 @default.
- W2997903896 crossrefType "journal-article" @default.
- W2997903896 hasAuthorship W2997903896A5012855077 @default.
- W2997903896 hasAuthorship W2997903896A5020152748 @default.
- W2997903896 hasAuthorship W2997903896A5038781215 @default.
- W2997903896 hasAuthorship W2997903896A5039616179 @default.
- W2997903896 hasAuthorship W2997903896A5049677934 @default.
- W2997903896 hasAuthorship W2997903896A5087594876 @default.
- W2997903896 hasBestOaLocation W29979038961 @default.
- W2997903896 hasConcept C102379954 @default.
- W2997903896 hasConcept C111919701 @default.
- W2997903896 hasConcept C15524039 @default.
- W2997903896 hasConcept C168702491 @default.
- W2997903896 hasConcept C199360897 @default.
- W2997903896 hasConcept C2777472213 @default.
- W2997903896 hasConcept C2779818221 @default.
- W2997903896 hasConcept C41008148 @default.
- W2997903896 hasConcept C42383842 @default.
- W2997903896 hasConcept C519991488 @default.
- W2997903896 hasConcept C548217200 @default.
- W2997903896 hasConceptScore W2997903896C102379954 @default.
- W2997903896 hasConceptScore W2997903896C111919701 @default.
- W2997903896 hasConceptScore W2997903896C15524039 @default.
- W2997903896 hasConceptScore W2997903896C168702491 @default.
- W2997903896 hasConceptScore W2997903896C199360897 @default.
- W2997903896 hasConceptScore W2997903896C2777472213 @default.
- W2997903896 hasConceptScore W2997903896C2779818221 @default.
- W2997903896 hasConceptScore W2997903896C41008148 @default.
- W2997903896 hasConceptScore W2997903896C42383842 @default.
- W2997903896 hasConceptScore W2997903896C519991488 @default.
- W2997903896 hasConceptScore W2997903896C548217200 @default.
- W2997903896 hasFunder F4320306076 @default.
- W2997903896 hasFunder F4320334593 @default.
- W2997903896 hasFunder F4320336370 @default.
- W2997903896 hasFunder F4320337345 @default.
- W2997903896 hasIssue "12" @default.
- W2997903896 hasLocation W29979038961 @default.
- W2997903896 hasOpenAccess W2997903896 @default.
- W2997903896 hasPrimaryLocation W29979038961 @default.
- W2997903896 hasRelatedWork W1509153591 @default.
- W2997903896 hasRelatedWork W1677933461 @default.
- W2997903896 hasRelatedWork W20625830 @default.
- W2997903896 hasRelatedWork W2130413583 @default.
- W2997903896 hasRelatedWork W2139643778 @default.