• Corpus ID: 244708892

EOLANG and phi-calculus

  title={EOLANG and phi-calculus},
  author={Yegor Bugayenko},
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 _-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 i-calculus. We… 

Figures and Tables from this paper


Towards an Object Calculus ∗
The development of an object calculus is proposed, borrowing heavily from relevant work in the area of process calculi, and the syntax, operational semantics and use are presented through examples of a proposed object calculus, called OC.
Object-Oriented Programming: Themes and Variations
The object-oriented style has often been advocated for simulation programs, systems programming, graphics, and AI programming, and is related to a line of work in AI on the theory of frames and their implementation in knowledge representation languages such as KRL, KEE, FRL, and UNITS.
An Object-Oriented Refinement Calculus
A collection of algorithm refinement rules, in particular, new rules for introducing feature calls (which are the basis of object-oriented computing) are presented that can be used to re-establish a speciflcation in BON to an immediately executable and correct program in Eiffel.
An Imperative, First-Order Calculus with Object Extension
This paper presents an imperative object calculus designed to support class-based programming via a combination of extensible objects and encapsulation, and shows how Java-style classes and mixins may be coded in this calculus.
An analysis of the dynamic behavior of JavaScript programs
An empirical study of the dynamic behavior of a corpus of widely-used JavaScript programs is performed, and how and why the dynamic features are used are analyzed.
A distributed object calculus
Two strands of research are brought together, to provide a model for distributed object-based languages: the importance of separating serializable and non-serializable data using types, and the use of located objects to model remote objects.
A lambda calculus of objects and method specialization
An untyped lambda calculus, extended with object primitives that reflect the capabilities of so-called delegation-based object-oriented languages, is presented and type soundness, in the form of a subject-reduction theorem, is proved.
The next 700 programming languages
A family of unimplemented computing languages is described that is intended to span differences of application area by a unified framework. This framework dictates the rules about the uses of
Julia: A Fast Dynamic Language for Technical Computing
Julia is presented, a new dynamic language for technical computing, designed for performance from the beginning by adapting and extending modern programming language techniques, which enables an expressive programming model and successful type inference, leading to good performance for a wide range of programs.
A Delegation-based Object Calculus with Subtying
An untyped object calculus that reflects the capabilities of so-called delegation-based object-oriented languages and type soundness is proved using operational semantics and an analysis of typing derivations.