. oop has extremely poor modularity propertieswith respect to class extension and modification.For example, it is easy to override a methodthat should not be overridden,or to reimplement a class in a way thatcauses problems in subclasses.Other large-scale development problems includethe confusion between classes and object types,which limits the construction of abstractions,and the fact that subtype polymorphismis not good enough for expressing container classes .Here are some things that could or shouldbe done to sofware engineering with respect to oop:* Economy of execution.Much can be done to improve the efficiency of method invocationWe also need to design type systems that canstatically check many of the conditions that now requiredynamic subclass checks.* Economy of compilation.the separate compilation of (sub)classes,without resorting to recompilation of superclassesand without relying on "private" information in interfaces.* Economy of small-scale development.improve error detection and the expressiveness of interfaces.* Economy of large-scale development.formulating and enforcing inheritance interfaces:the contract between a class and its subclasses(as opposed to the instantiation interfacewhich is essentially an object type).Parametric polymorphism is beginning to appearand its interactions with object-oriented featuresneed to be better understood.Subtyping and subclassing must be separated.Similarly, classes and interfaces must be separated.* Economy of language features.Prototype-based languages [provide simpler,more composable features with orthogonality] .How can we design powerful engineeringbut also simple and reliable engineering?
2009-12-29
booking oop with Cardelli
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment