scispace - formally typeset
Search or ask a question

Showing papers by "Michael I. Schwartzbach published in 1994"


Book
01 Jan 1994
TL;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


Journal ArticleDOI
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


Proceedings ArticleDOI
16 May 1994
TL;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


Journal ArticleDOI
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


Journal ArticleDOI
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


Journal ArticleDOI
01 Feb 1994
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.

6 citations


Book ChapterDOI
11 Apr 1994
TL;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


Journal ArticleDOI
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


Journal ArticleDOI
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.