



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An introduction to object calculi, a formal system for modeling and understanding object-oriented programming (oop). The authors discuss the need for a calculus for oop, the limitations of using λ-calculus for oop, and the basics of an untyped object calculus. The document also covers the syntax and operational semantics of the calculus, as well as examples and encodings of fields and functions.
Typology: Study notes
1 / 5
This page cannot be seen from the preview
Don't miss anything!




making an object
updating a method
invoking a method
o = [ value = ς(x). 0,
set = ς(x). x.value ← ς(y). 1,
reset = ς(x). x.value ← ς(y). 0 ]
BitType = [ value : int, set : BitType, reset : BitType]
BitType = [ value : int, set : BitType, reset : BitType]
FlipBitType = [ value : int, set : FlipBitType, reset : FlipBitType, flip : FlipBitType]
[… mi^0 : B …] < [… mi^0 : B’ …] if B = B’
[… mi+^ : B …] < [… mi+^ : B’ …] if B < B’
[… mi-^ : B …] < [… mi-^ : B’ …] if B’ < B
Class(A) = [new : A, mi : A → Bi]
lendVal = ς(z) λx:t