Research output: Chapter in Book/Report/Conference proceeding › Conference contribution › peer-review
Lupa : A Framework for Large Scale Analysis of the Programming Language Usage. / Vlasova, Anna; Tigina, Maria; Vlasov, Ilya; Birillo, Anastasiia; Golubev, Yaroslav; Bryksin, Timofey.
Proceedings - 2022 Mining Software Repositories Conference, MSR 2022. Institute of Electrical and Electronics Engineers Inc., 2022. p. 398-402.Research output: Chapter in Book/Report/Conference proceeding › Conference contribution › peer-review
}
TY - GEN
T1 - Lupa
T2 - 2022 Mining Software Repositories Conference, MSR 2022
AU - Vlasova, Anna
AU - Tigina, Maria
AU - Vlasov, Ilya
AU - Birillo, Anastasiia
AU - Golubev, Yaroslav
AU - Bryksin, Timofey
N1 - Publisher Copyright: © 2022 ACM.
PY - 2022/5/23
Y1 - 2022/5/23
N2 - In this paper, we present Lupa - a platform for large-scale analysis of the programming language usage. Lupa is a command line tool that uses the power of the IntelliJ Platform under the hood, which gives it access to powerful static analysis tools used in modern IDEs. The tool supports custom analyzers that process the rich concrete syntax tree of the code and can calculate its various features: the presence of entities, their dependencies, definition-usage chains, etc. Currently, Lupa supports analyzing Python and Kotlin, but can be extended to other languages supported by IntelliJ-based IDEs. We explain the internals of the tool, show how it can be extended and customized, and describe an example analysis that we carried out with its help: analyzing the syntax of ranges in Kotlin.
AB - In this paper, we present Lupa - a platform for large-scale analysis of the programming language usage. Lupa is a command line tool that uses the power of the IntelliJ Platform under the hood, which gives it access to powerful static analysis tools used in modern IDEs. The tool supports custom analyzers that process the rich concrete syntax tree of the code and can calculate its various features: the presence of entities, their dependencies, definition-usage chains, etc. Currently, Lupa supports analyzing Python and Kotlin, but can be extended to other languages supported by IntelliJ-based IDEs. We explain the internals of the tool, show how it can be extended and customized, and describe an example analysis that we carried out with its help: analyzing the syntax of ranges in Kotlin.
KW - kotlin
KW - Language analysis
KW - mining software repositories
KW - python
KW - static analysis
UR - http://www.scopus.com/inward/record.url?scp=85134062663&partnerID=8YFLogxK
UR - https://www.mendeley.com/catalogue/f1224f50-3cf9-361e-b108-d52b78c7b89e/
U2 - 10.1145/3524842.3528477
DO - 10.1145/3524842.3528477
M3 - Conference contribution
AN - SCOPUS:85134062663
SP - 398
EP - 402
BT - Proceedings - 2022 Mining Software Repositories Conference, MSR 2022
PB - Institute of Electrical and Electronics Engineers Inc.
Y2 - 23 May 2022 through 24 May 2022
ER -
ID: 97485633