Detecting unanticipated mutual recursion using Elegant Objects representation of object-oriented programs

09/05/2022
by   Nikolai Kudasov, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/05/2022

Detecting Unjustified Assumptions in Subclasses via Elegant Objects Representation

Elegant Objects (EO) is a programming language based on ideas of pure ob...
research
12/17/2021

Reducing Programs to Objects

C++, Java, C#, Python, Ruby, JavaScript are the most powerful object-ori...
research
11/26/2019

GOOL: A Generic Object-Oriented Language (extended version)

We present GOOL, a Generic Object-Oriented Language. It demonstrates tha...
research
01/09/2020

Lazy object copy as a platform for population-based probabilistic programming

This work considers dynamic memory management for population-based proba...
research
07/27/2021

Papaya: Global Typestate Analysis of Aliased Objects Extended Version

Typestates are state machines used in object-oriented programming to spe...
research
03/11/2021

Classical (Co)Recursion: Programming

Our aim here is to illustrate how the benefits of structural corecursion...
research
05/26/2020

Understanding Lua's Garbage Collection – Towards a Formalized Static Analyzer

We provide the semantics of garbage collection (GC) for the Lua programm...

Please sign up or login with your details

Forgot password? Click here to reset