Showing papers by "Michael I. Schwartzbach published in 1994"
•
01 Jan 1994TL;DR: Object-Oriented Languages and Type Systems The BOPL Language The Rest of this Book Type Checking Type Inference Inheritance Genericity The BopL Grammar The Workbench.
Abstract: Object-Oriented Languages and Type Systems The BOPL Language The Rest of this Book Type Checking Type Inference Inheritance Genericity The BOPL Grammar The Workbench.
210 citations
••
TL;DR: An O(n^3) algorithm constructs a certain finite automaton that represents a canonical solution to a given set of type constraints and works equally well for recursive types.
55 citations
01 Jan 1994
TL;DR: This paper constructs a certain nite automaton that represents a canonical solution to a given set of type constraints and works equally well for recursive types; this solves an open problem stated in [5].
Abstract: Partial types for the -calculus were introduced by Thatte in 1988 [8] as a means of typing objects that are not typable with simple types, such as heterogeneous lists and persistent data. In that paper he showed that type inference for partial types was semidecidable. Decidability remained open until quite recently, when O’Keefe and Wand [5] gave an exponential time algorithm for type inference. In this paper we give an O(n 3 ) algorithm. Our algorithm constructs a certain nite automaton that represents a canonical solution to a given set of type constraints. Moreover, the construction works equally well for recursive types; this solves an open problem stated in [5].
29 citations
••
16 May 1994TL;DR: It is proved that the abstract interpretation approach is more powerful than that of Gomard and Jones: the former determines the same and possibly more program parts to be eliminable as the latter.
Abstract: Binding-time analysis is important in partial evaluators. Its task is to determine which parts of a program can be evaluated if some of the expected input is known. Two approaches to do this are abstract interpretation and type inference. We compare two specific such analyses to see which one determines most program ports to be eliminable. The first is a an abstract interpretation approach based on closure analysis and the second is the type inference approach of Gomard and Jones (1991). Both apply to the pure /spl lambda/-calculus. We prove that the abstract interpretation approach is more powerful than that of Gomard and Jones: the former determines the same and possibly more program parts to be eliminable as the latter. >
27 citations
••
TL;DR: This work uses monadic second-order logic and introduces edge constraints as a new means of specifying a large class of graph families to overcome the problem of whether a graph family given by a specification A is mapped to a family givenby a specification B is decidable.
Abstract: We give examples to show that not even c-edNCE , the most general known notion of context-free graph grammar, is suited for the specification of some common data structures. To overcome this problem, we use monadic second-order logic and introduce edge constraints as a new means of specifying a large class of graph families. Our notion stems from a natural dichotomy found in programming practice between ordinary pointers forming spanning trees and auxiliary pointers cutting across. Our main result is that for certain transformations of graphs definable in monadic second-order logic, the question of whether a graph family given by a specification A is mapped to a family given by a specification B is decidable. Thus a decidable Hoare logic arises.
23 citations
••
TL;DR: It is shown that the subclassing order strictly generalizes inheritance, and that a novel genericity mechanism arises as an order-theoretic complement in this theory of statically typed object-oriented languages.
22 citations
••
01 Feb 1994TL;DR: This work uses monadic second-order logic and introduces edge constraints as a new means of specifying a large class of graph families to overcome the problem of whether a graph family given by a specification A is mapped to a family givenby a specification B is decidable.
Abstract: We give examples to show that not even c-edNCE , the most general known notion of context-free graph grammar, is suited for the specification of some common data structures. To overcome this problem, we use monadic second-order logic and introduce edge constraints as a new means of specifying a large class of graph families. Our notion stems from a natural dichotomy found in programming practice between ordinary pointers forming spanning trees and auxiliary pointers cutting across. Our main result is that for certain transformations of graphs definable in monadic second-order logic, the question of whether a graph family given by a specification A is mapped to a family given by a specification B is decidable. Thus a decidable Hoare logic arises.
6 citations
••
11 Apr 1994TL;DR: It is shown that not even c-edNCE, the most general known notion of context-free graph grammar, is suited for the specification of some common data structures.
Abstract: We give examples to show that not even c-edNCE, the most general known notion of context-free graph grammar, is suited for the specification of some common data structures
6 citations
••
TL;DR: An algorithm is presented which will often be able to prove that such a composite function is injective, and which constructs a set of propositional Horn clause axioms from the function specification and the available information about the basic functions.
1 citations
••
01 Feb 1994
TL;DR: This work is based on monadic second-order logic, and verification boils down to calculations on finite-state automata, which raises specific questions about combinatorial techniques for representing state spaces if these calculations are ever to be carried out on more than simple examples.
Abstract: Our recent work links type checking in programming languages to verification based on automata. In this survey, we give an overview of our methods and suggest directions for future research. In our approach, we view data types as invariants and devise a logical and decidable framework for expressing global properties of a store consisting of records and pointers. We can express common properties, for example about doubly-linked lists and their algorithms. Such properties seemed to have called for a full Hoare logic beyond the reach of type checking and decidability. Our work is based on monadic second-order logic. Thus verification boils down to calculations on finite-state automata. This raises specific questions about combinatorial techniques for representing state spaces if these calculations are ever to be carried out on more than simple examples.
1 citations
[...]
01 Jan 1994
TL;DR: It is shown that the subclassing order strictly generalizes inheritance, and that a novel genericity mechanism arises as an order-theoretic complement in this theory of statically typed object-oriented languages.
Abstract: We develop a theory of statically typed object-oriented languages. It represents classes as labeled, regular trees, types as nite sets of classes, and subclassing as a partial order on trees. We show that our subclassing order strictly generalizes inheritance, and that a novel genericity mechanism arises as an order-theoretic complement. This mechanism, called class substitution, is pragmatically useful and can be implemented ecien tly.