Detecting unanticipated mutual recursion using Elegant Objects representation of object-oriented programs
Nikolai Kudasov, Mikhail Olokin, Oleksii Potyomkin, Nikolay Shilov,, Maxim Stepanov

TL;DR
This paper explores using Elegant Objects as an intermediate representation for object-oriented programs to detect unanticipated mutual recursion and fragile base class issues, offering a new approach to static analysis.
Contribution
It introduces plausible EO representations of class-based constructs and proposes an algorithm to detect fragile base class patterns within EO programs.
Findings
EO can represent class-based constructs from Java, C++, and Python
An algorithm can detect some fragile base class patterns in EO
Using EO as an intermediate language is feasible for static analysis
Abstract
Elegant Objects (EO) is a variation of the object-oriented programming paradigm that favors pure objects and decoration. EO programming language is based on these ideas and has been suggested by Bugayenko as an intermediate representation for object-oriented programs. This paper provides plausible representations in EO of some class-based constructions from Java, C++, and Python. We then reformulate the classical fragile base class problem in the context of these representations. Finally, we discuss an algorithm for detecting a subset of fragile base class patterns in EO programs. We show that using EO as an intermediate language is plausible and discuss possible improvements to the language to assist in richer static analysis.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Logic, programming, and type systems · Advanced Malware Detection Techniques
