By Martín Abadi, Luca Cardelli
Procedural languages are quite often good understood and their formal foundations solid within the kinds of a number of lambda-calculi. For object-oriented languages but the state of affairs isn't as straight forward. during this e-book the authors suggest and advance a special method through constructing item calculi during which items are taken care of as primitives. utilizing item calculi, the authors may be able to clarify either the semantics of items and their typing ideas and reveal how you can increase the entire most crucial recommendations of object-oriented programming languages: self, dynamic dispatch, sessions, inheritance, secure and personal tools, prototyping, subtyping, covariance and contravariance, and strategy specialization. Many researchers and graduate scholars will locate this a big improvement of the underpinnings of object-oriented programming.
Read Online or Download A theory of Objects PDF
Best object-oriented software design books
Sams educate your self net Publishing with HTML and CSS in a single Hour an afternoon is a brand new version of the best-selling booklet that begun the full HTML/web publishing phenomenon. the full publication has been revised and sophisticated to mirror present internet publishing practices and applied sciences. It comprises broad insurance of Cascading kind Sheets (CSS), that have turn into a staple in net improvement.
Item expertise A gold mine of firm software frameworks imposing program Frameworks whereas frameworks can shop your organization thousands in improvement expenses over the years, the preliminary funding could be very excessive. This book/CD-ROM package deal enables you to decrease the price of framework improvement through delivering forty case reports documenting the studies of framework developers and clients at significant organisations and examine labs, all over the world.
UML utilized: A . internet point of view is the 1st publication to envision the 2 worlds of Unified Modeling Language (UML) and . internet simultaneously. The center of UML utilized: A . web standpoint is a suite of confirmed, hands-on, team-oriented routines that would have the reader fixing real-world issues of UML speedier than while utilizing the other approach—often in below an afternoon.
Procedural languages are regularly good understood and their formal foundations forged within the types of numerous lambda-calculi. For object-oriented languages but the state of affairs isn't as simple. during this ebook the authors suggest and boost a special method via constructing item calculi during which gadgets are handled as primitives.
Extra resources for A theory of Objects
2. CLASS-BASED LANGUAGES 21 We examine function types next. The type A~B is the type of functions with argument type A and result type B. We say that ~ is a contravariant operator in its left argument because A~B varies in the opposite sense as A; the right argument is instead covariant: A~B <: A'~B' provided that A' <: A and B <: B' Argument for the co/contravariance of A~B If B <: B', then a functionf of type A~B produces results oftype B' by subsumption. If A' <: A, then f accepts also arguments of type A', since these have type A by subsumption.
We use ObjectTypeOJ(cell) as a meta-notation for the object type Cell. This type can be mechanically extracted from class cell. Therefore we may write either 0 : ObjectTypeOJ(cell) or 0: Cell. The main property we expect of ObjectTypeOfis that: new c : ObjectTypeOJ(c) for any class c 3. ADVANCED CLASS-BASED FEATURES 27 Different classes cell and ce1l1 may happen to produce the same object type Cell, equal to both ObjectTypeOf(cell) and ObjectTypeOf(ce1l1). Therefore objects having type Cell are required only to satisfy a certain protocol, independently of attribute implementation.
According to our definitions, covariance of method argument types is statically unsound: if left unchecked, it may result in unpredictable behavior. 7 Method Specialization In our discussion of subclasses we have taken the simplest approach to overriding, requiring that an overriding method has exactly the same type as the overridden method. This condition can be relaxed to allow method specialization, that is, to allow an overriding method to adopt different argument and result types, specialized for the subclass.
A theory of Objects by Martín Abadi, Luca Cardelli