| B. Liskov and J. Guttag. Abstraction and Specification in Program Design. MIT Press, 1985. |
....effect the module interconnection. 16 This state of affairs has several well known drawbacks. No static typechecking is performed across module boundaries. There is also poor support for encapsulation; typically, all globals in a module are available to other modules. Later languages such as CLU [43], Ada [1] Modula 2 [74] Modula 3 and others provide a structured way of specifying modules and their interconnection. Formal notions of module and interface are part of the language. The language semantics guarantee that modules are used in accordance with their interface. This means that ....
....without taking the radical step of making inheritance a first class (runtime) operation. Such abstractions are the topic of the next subsection. 3.2. 1 Mixins and Type Abstraction Many programming languages support abstractions over second class entities, such as types, classes or modules [43, 1, 62, 51, 55, 23, 26]. These constructs are often referred to as generics. In some languages, generics are merely macros, separately expanded and recompiled for every application of the abstraction. This is the case in Ada, Modula 3 and C . Such constructs are easily incorporated into almost any language. However, ....
Liskov, B., and Guttag, J. Abstraction and Specification in Program Design. MIT Press, Cambridge, Mass., 1986.
No context found.
B. Liskov and J. Guttag. Abstraction and Specification in Program Design. MIT Press, 1985.
....a type to have multiple implementations and makes it convenient to define the subtyping relation. Our specifications are formal, which means that they have a precise mathematical meaning that serves as a firm foundation for reasoning. Our specifications can also be used informally as described in [27]. Second, it explores the ramifications of the subtype relation and shows how interesting type families can be defined. For example, arrays are not a subtype of sequences (because the user of a sequence expects it not to change over time) and 32 bit integers are not a subtype of 64 bit integers ....
B. Liskov and J. Guttag. Abstraction and Specification in Program Design. MIT Press, 1985.
....rule, and we make up for both losses by adding explicit predicates to our type specifications. Our specifications are formal, which means that they have a precise mathematical meaning that serves as a firm foundation for reasoning. Our specifications can also be used informally as described in [LG85] Our definition applies in a very general distributed environment in which possibly concurrent users share mutable objects. Our approach is also constructive: One can prove whether a subtype relation holds by proving a small number of simple lemmas based on the specifications of the two types. ....
Liskov, B. and Guttag, J. Abstraction and Specification in Program Design. MIT Press, 1985.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC