🤖 AI Summary
Object-oriented programming (OOP) has long lacked a unified, computationally grounded, and logically tractable formal foundation comparable to the lambda calculus; existing formal systems fail to fully capture core OO features—inheritance, encapsulation, and polymorphism. Method: We introduce φ-calculus, the first calculi-based formalism fully supporting these features, and design EOLANG—a purely object-oriented language whose sole primitives are object algebraic operations, deliberately omitting functions, variables, and explicit control flow. We develop a formal abstract syntax tree algebra, implement a reference interpreter (in Java/Kotlin) with full operational semantics, and rigorously prove confluence and weak normalization for φ-calculus. Contribution/Results: Our framework enables industrial-scale code modeling and static analysis prototyping, thereby bridging a foundational gap in OOP theory.
📝 Abstract
Object-oriented programming (OOP) is one of the most popular paradigms used for building software systems. However, despite its industrial and academic popularity, OOP is still missing a formal apparatus similar to $lambda$-calculus, which functional programming is based on. There were a number of attempts to formalize OOP, but none of them managed to cover all the features available in modern OO programming languages, such as C++ or Java. We have made yet another attempt and created $varphi$-calculus. We also created EOLANG (also called EO), an experimental programming language based on $varphi$-calculus.