EDBT 2026 Demo / reviewers in the wild / expert
Xiaoni Lai
dblp:47/9745
· DBLP profile ↗
2ranked-venue papers
0as first author
1since 2021 · last 2021
0000-0001-8881-1278ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 1 · 1 since 2021Human-computer interaction and ubiquitous computing · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
1 paper |
Program analysis · 91% Programming languages and type systems · 9% |
Topics — the 4 heaviest of 4, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis › binary analysis
bytecode analysis |
0.5 | 1 | 2021 | A Study of Call Graph Construction for JVM-Hosted Languages · IEEE Trans. Software Eng. 2021 |
Program analysis › static analysis
call graph construction |
0.5 | 1 | 2021 | A Study of Call Graph Construction for JVM-Hosted Languages · IEEE Trans. Software Eng. 2021 |
Program analysis
static analysis |
0.5 | 1 | 2021 | A Study of Call Graph Construction for JVM-Hosted Languages · IEEE Trans. Software Eng. 2021 |
Programming languages and type systems
language design |
0.1 | 1 | 2021 | A Study of Call Graph Construction for JVM-Hosted Languages · IEEE Trans. Software Eng. 2021 |
Methods — techniques the papers use, named apart from their topics
reflection handling · 0.5pointer analysis · 0.5
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2021 | A Study of Call Graph Construction for JVM-Hosted LanguagesabstractCall 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,invokedynamicinstructions, 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. Karim Ali 0001, Xiaoni Lai, Zhaoyi Luo, Ondrej Lhoták, Julian Dolby, Frank Tip |
IEEE Trans. Software Eng. | 2 |
| 2011 | Teammates: A cloud-based peer evaluation tool for student team projectsabstractSummary form only given. • Part 1 — Fundamental of Electric Machines • Physics of Electric Machines • Basic EquaMons • DC Machine Modeling • Induction Machine Modeling • PMAC Machine Modeling Gerald Goh, Xiaoni Lai, Damith C. Rajapakse |
CSEE&T | 2 |