A Theory of Objects

@inproceedings{Abadi1996ATO,
  title={A Theory of Objects},
  author={Mart{\'i}n Abadi and Luca Cardelli},
  booktitle={Monographs in Computer Science},
  year={1996}
}
From the Publisher: Procedural languages are generally well understood. Their foundations have been cast in calculi that prove useful in matters of implementation and semantics. So far, an analogous understanding has not emerged for object-oriented languages. In this book the authors take a novel approach to the understanding of object-oriented languages by introducing object calculi and developing a theory of objects around them. The book covers both the semantics of objects and their typing… 

rCOS: A refinement calculus of object systems

Typed interpretations of extensible objects

A type preserving and computationally adequate interpretation of a full-fledged object calculus that supports message passing and constructs for object update and extension is described.

Encodings of Extensible Objects and Types

A type preserving and computationally adequate interpretation of a full-fledged object calculus that supports message passing and primitives for object update and extension is described.

University of Birmingham Objects and Classes in Algol-like Languages

It is shown that the basic framework of this theory extends cleanly and elegantly to the concepts of objects and classes, and a clear correspondence emerges between classes and abstract data types, whose theory corresponds to that of existential types.

Difunctorial Semantics of Object Calculus

Objects and Classes in Algol-Like Languages

  • U. Reddy
  • Computer Science
    Inf. Comput.
  • 2002
It is shown that the basic framework of this theory extends cleanly and elegantly to the concepts of objects and classes, and a clear correspondence emerges between classes and abstract data types, whose theory corresponds to that of existential types.

Semantic predicate types and approximation for class-based object oriented programming

An extension of Featherweight Java, pFJ, is defined, and a predicate system is presented which provides a semantic underpinning for the object oriented paradigm by generalising the concept of approximant from the Lambda Calculus and demonstrating an approximation result.

Prototypes: Object-Orientation, Functionally

This paper elucidates the essence of Object-Oriented Programming (OOP), using a constructive approach: we identify a minimal basis of concepts with which to synthesize existing and potential object

Recursive Object Types in a Logic of Object-Oriented Programs

  • K. Leino
  • Computer Science
    Nord. J. Comput.
  • 1998
This paper formalizes a small object-oriented programming notation. The notation features imperative commands where objects can be shared (aliased), and is rich enough to allow subtypes and recursive

Inheritance of specifications in the calculus of functional objects (preliminary report)

A new calculus is introduced that features object notion as a primitive construction allowing for quite simple presentation and certain principles of object-orientation can be also applied to accompanied proofs, namely inheritance, late binding, and encapsulation.
...

References

SHOWING 1-10 OF 69 REFERENCES

An interpretation of objects and object types

We present an interpretation of typed object-oriented concepts in terms of well-understood, purely procedural concepts. More precisely, we give a compositional subtype-preserving translation of a

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.

A behavioural approach to subtyping in object-oriented programming languages

It is argued that in object-oriented programming languages a distinction should be made between illheritallce, considered as a mechanism by which classes can share code for variables and methods, and

Two semantic models of object-oriented languages

It is shown that this denotational framework is adequate to explain classes, instantiation, and inheritance in the style of Simula as well as Smalltalk{80}, and more appropriate names may be the xe d-point model and the self-application model.

A Unifying Type-Theoretic Framework for Objects

Abstract We give a direct type-theoretic characterization of the basic mechanisms of object-oriented programming, including objects, methods, message passing, and subtyping, by introducing an

Semantics of programming languages - structures and techniques

Semantics of Programming Languages exposes the basic motivations and philosophy underlying the applications of semantic techniques in computer science. It introduces the mathematical theory of

A Paradigmatic Object-Oriented Programming Language: Design, Static Typing and Semantics

The design of TOOPL is described, a paradigmatic, statically-typed, functional, object-oriented programming language which supports classes, objects, methods, hidden instance variables, subtypes and inheritance, and the semantics of the language is rather complex, involving fixed points at both the element and type level.

A Denotational Semantics of Inheritance

This thesis develops a semantic model of inheritance and investigates its applications for the analysis and design of programming languages, proven equivalent to the operational semantics of inheritance embodied by the interpreters of object-oriented languages like Smalltalk.

A parallel object-oriented language with inheritance and subtyping

This paper shows that inheritance and subtyping can be introduced advantageously into a parallel object-oriented language, POOL-I, and several problems traditionally adhering to inheritance can be solved.

Declarative Object-Oriented Programming: Inheritance, Subtyping and Prototyping

The underlying implementation technique produces a powerful prototyping tool for object-oriented software development and generalizes logic programming architectures by an algebraic automata based model for representing object states and state transitions.
...