Demo Data from EDBT 2026 / reviewers in the wild / expert
Tim Sheard
dblp:s/TimSheard · also Timothy E. Sheard
· DBLP profile ↗
38ranked-venue papers
10as first author
0since 2021 · last 2014
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 24 · 8 first-authorDatabases, data management, data science and information retrieval · 10 · 2 first-authorTheory of computation · 5Artificial intelligence and machine learning · 1Systems, architecture and hardware · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Databases, data mining, and information retrieval
9 papers |
Data stream processing · 80% Database theory · 9% Transaction processing and concurrency control · 5% | |
| Software engineering, system software, and programming languages
7 papers |
Programming languages and type systems · 83% Program verification · 10% Software maintenance and evolution · 6% |
Topics — the 24 heaviest of 31, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Data stream processing
continuous query processing |
0.1 | 2 | 2007 | Using Punctuation Schemes to Characterize Strategies for Querying over Data Streams · IEEE Trans. Knowl. Data Eng. 2007 Exploiting Punctuation Semantics in Continuous Data Streams · IEEE Trans. Knowl. Data Eng. 2003 |
Data stream processing
punctuated data streams |
0.1 | 2 | 2007 | Using Punctuation Schemes to Characterize Strategies for Querying over Data Streams · IEEE Trans. Knowl. Data Eng. 2007 Exploiting Punctuation Semantics in Continuous Data Streams · IEEE Trans. Knowl. Data Eng. 2003 |
Programming languages and type systems
type systems |
0.0 | 2 | 1998 | Dynamic Typing as Staged Type Inference · POPL 1998 Multi-Stage Programming: Axiomatization and Type Safety · ICALP 1998 |
Programming languages and type systems
type inference |
0.0 | 2 | 1998 | Dynamic Typing as Staged Type Inference · POPL 1998 Revisiting Catamorphisms over Datatypes with Embedded Functions (or, Programs from Outer Space) · POPL 1996 |
Program verification
axiomatization |
0.0 | 1 | 1998 | Multi-Stage Programming: Axiomatization and Type Safety · ICALP 1998 |
Programming languages and type systems › type systems
dynamic typing |
0.0 | 1 | 1998 | Dynamic Typing as Staged Type Inference · POPL 1998 |
Programming languages and type systems
language design |
0.0 | 1 | 1998 | Multi-Stage Programming: Axiomatization and Type Safety · ICALP 1998 |
Programming languages and type systems
language semantics |
0.0 | 1 | 1998 | Multi-Stage Programming: Axiomatization and Type Safety · ICALP 1998 |
Programming languages and type systems › metaprogramming
multi-stage programming |
0.0 | 1 | 1998 | Multi-Stage Programming: Axiomatization and Type Safety · ICALP 1998 |
Programming languages and type systems › type systems
type soundness |
0.0 | 1 | 1998 | Multi-Stage Programming: Axiomatization and Type Safety · ICALP 1998 |
Programming languages and type systems
functional programming |
0.0 | 1 | 1996 | Revisiting Catamorphisms over Datatypes with Embedded Functions (or, Programs from Outer Space) · POPL 1996 |
Programming languages and type systems
type theory |
0.0 | 1 | 1996 | Revisiting Catamorphisms over Datatypes with Embedded Functions (or, Programs from Outer Space) · POPL 1996 |
Database theory
integrity constraints |
0.0 | 2 | 1988 | Resolving the Tension between Integrity and Security Using a Theorem Prover · SIGMOD Conference 1988 On the Modes and Meaning of Feedback to Transaction Designers · SIGMOD Conference 1987 |
Programming languages and type systems
abstract data types |
0.0 | 1 | 1991 | Automatic Generation and Use of Abstract Structure Operators · ACM Trans. Program. Lang. Syst. 1991 |
Programming languages and type systems › type systems
polymorphism |
0.0 | 1 | 1998 | Dynamic Typing as Staged Type Inference · POPL 1998 |
Database theory › integrity constraints
integrity constraint checking |
0.0 | 1 | 1989 | Automatic Verification of Database Transaction Safety · ACM Trans. Database Syst. 1989 |
Database system architecture and tuning
database security |
0.0 | 1 | 1988 | Resolving the Tension between Integrity and Security Using a Theorem Prover · SIGMOD Conference 1988 |
Database system architecture and tuning › database security
inference control |
0.0 | 1 | 1988 | Resolving the Tension between Integrity and Security Using a Theorem Prover · SIGMOD Conference 1988 |
Programming languages and type systems › type systems › polymorphism
hindley-milner type system |
0.0 | 1 | 1996 | Revisiting Catamorphisms over Datatypes with Embedded Functions (or, Programs from Outer Space) · POPL 1996 |
Transaction processing and concurrency control › data integrity
integrity constraint enforcement |
0.0 | 1 | 1987 | On the Modes and Meaning of Feedback to Transaction Designers · SIGMOD Conference 1987 |
Data models and query languages
abstract data types |
0.0 | 1 | 1986 | Abstract Data Types in Databases: Specification, Manipulation and Access · ICDE 1986 |
Program verification
theorem proving |
0.0 | 1 | 1984 | Specification and Verification of Abstract Database Types · PODS 1984 |
Program verification › static verification
compile-time verification |
0.0 | 1 | 1989 | Automatic Verification of Database Transaction Safety · ACM Trans. Database Syst. 1989 |
Transaction processing and concurrency control
transaction specification |
0.0 | 1 | 1984 | Specification and Verification of Abstract Database Types · PODS 1984 |
Methods — techniques the papers use, named apart from their topics
topology compact sets · 0.1proof strategy · 0.0invariant specification · 0.0unification · 0.0staged computation · 0.0type inference · 0.0static analysis · 0.0constraint reasoning · 0.0theorem proving · 0.0abstract data types · 0.0tuples · 0.0lists · 0.0finite sets · 0.0boyer-moore theorem proving · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2014 | Red Fox: An Execution Environment for Relational Query Processing on GPUs
Haicheng Wu, Gregory Frederick Diamos, Tim Sheard, Molham Aref, Sean Baxter, Michael Garland, Sudhakar Yalamanchili |
CGO | 3 |
| 2012 | Painless programming combining reduction and search: design principles for embedding decision procedures in high-level languagesabstractWe describe the Funlogic system which extends a functional language with existentially quantified declarations. An existential declaration introduces a variable and a set of constraints that its value should meet. Existential variables are bound to conforming values by a decision procedure. Funlogic embeds multiple external decision procedures using a common framework. Design principles for embedding decision procedures are developed and illustrated for three different decision procedures from widely varying domains. Tim Sheard |
ICFP | 1 |
| 2011 | A hierarchy of mendler style recursion combinators: taming inductive datatypes with negative occurrencesabstractThe Mendler style catamorphism (which corresponds to weak induction) always terminates even for negative inductive datatypes. The Mendler style histomorphism (which corresponds to strong induction) is known to terminate for positive inductive datatypes. To our knowledge, the literature is silent on its termination properties for negative datatypes. In this paper, we prove that histomorphisms do not always termintate by showing a counter-example. We also enrich the Mendler collection of recursion combinators by defining a new form of Mendler style catamorphism (msfcata), which terminates for all inductive datatypes, that is more expressive than the original. We organize the collection of combinators by placing them into a hierarchy of ever increasing generality, and describing the termination properties of each point on the hierarchy. We also provide many examples (including a case study on a negative inductive datatype), which illustrate both the expressive power and beauty of the Mendler style. One lesson we learn from this work is that weak induction applies to negative inductive datatypes but strong induction is problematic. We provide a proof of weak induction by exhibiting an embedding of our new combinator into Fω. We pose the open question: Is there a safe way to apply strong induction to negative inductive datatypes? Ki Yung Ahn, Tim Sheard |
ICFP | 2 |
| 2011 | Binders unboundabstractImplementors of compilers, program refactorers, theorem provers, proof checkers, and other systems that manipulate syntax know that dealing with name binding is difficult to do well. Operations such as α-equivalence and capture-avoiding substitution seem simple, yet subtle bugs often go undetected. Furthermore, their implementations are tedious, requiring "boilerplate" code that must be updated whenever the object language definition changes. Stephanie Weirich, Brent A. Yorgey, Tim Sheard |
ICFP | 3 |
| 2008 | Erasure and Polymorphism in Pure Type Systems
Nathan Mishra-Linger, Tim Sheard |
FoSSaCS | 2 |
| 2008 | Shared subtypes: subtyping recursive parametrized algebraic data typesabstractA newtype declaration in Haskell introduces a new type renaming an existing type. The two types are viewed by the programmer as semantically different, but share the same runtime representation. When operations on the two semantic views coincide, the run-time cost of conversion between the two types is reduced to zero (in both directions) because of this common representation. Ki Yung Ahn, Tim Sheard |
Haskell | 2 |
| 2007 | Using Punctuation Schemes to Characterize Strategies for Querying over Data StreamsabstractMany systems and strategies have been proposed for processing nonterminating data streams. Each approach has advantages and disadvantages, including the kinds of queries that can be executed. We present a framework for characterizing the kinds of queries that can be executed over streams based on a notion of compact sets from topology. We first apply our framework to queries over punctuated data streams. Previous work on punctuations focused primarily on the behavior of individual query operators. We use our framework to determine if an entire query can benefit from punctuations available from stream sources. We then consider other common strategies proposed in the literature for executing queries over streams, and we discuss how our framework can characterize the kinds of queries each strategy can answer. Peter A. Tucker, David Maier 0001, Tim Sheard, Paul Stephens |
IEEE Trans. Knowl. Data Eng. | 3 |
| 2005 | Putting curry-howard to workabstractAbstract The Curry-Howard isomorphism states that types are propositionsand that programs are proofs. This allows programmers to state and enforce invariants of programs by using types. Unfortunately,the type systems of today's functional languages cannot directly express interesting properties of programs. To alleviate this prob-lem, we propose the addition of three new features to functional programming languages such as Haskell: Generalized AlgebraicDatatypes, Extensible Kind Systems, and the generation, propagation, and discharging of Static Propositions. These three new fea-tures are backward compatible with existing features, and combine to enable a new programming paradigm for functional program-mers. This paradigm makes it possible to state and enforce interesting properties of programs using the type system, and it does this inmanner that leaves intact the functional programming style, known and loved by functional programmers everywhere. Categories and Subject Descriptors D.3 [Software]: Program-ming Languages Tim Sheard |
Haskell | 1 |
| 2004 | Binding-Time Analysis for MetaML via Type Inference and Constraint Solving
Nathan Mishra-Linger, Tim Sheard |
TACAS | 2 |
| 2004 | Two-level types and parameterized modulesabstractIn this paper, we describe two techniques for the efficient, modularized implementation of a large class of algorithms. We illustrate these techniques using several examples, including efficient generic unification algorithms that use reference cells to encode substitutions, and highly modular language implementations. We chose these examples to illustrate the following important techniques that we believe many functional programmers would find useful. First, defining recursive data types by splitting them into two levels: a structure defining level, and a recursive knot-tying level. Second, the use of rank-2 polymorphism inside Haskell's record types to implement a kind of type-parameterized modules. Finally, we explore techniques that allow us to combine already existing recursive Haskell data-types with the highly modular style of programming proposed here. Tim Sheard, Emir Pasalic |
J. Funct. Program. | 1 |
| 2003 | Closed types for a safe imperative MetaMLabstractThis paper addresses the issue of safely combining computational effects and multi-stage programming. We propose a type system which exploits a notion of closed type , to check statically that an imperative multi-stage program does not cause run-time errors. Our approach is demonstrated formally for a core language called $\hbox{\sf MiniML}^{\sf meta}_{\sf ref}$ . This core language safely combines multi-stage constructs and ML-style references, and is a conservative extension of $\hbox{\sf MiniML}_{\sf ref}$ , a simple imperative subset of SML. In previous work, we introduced a closed type constructor , which was enough to ensure the safe execution of dynamically generated code in the pure fragment of $\hbox{\sf MiniML}^{\sf meta}_{\sf ref}$ . Cristiano Calcagno, Eugenio Moggi, Tim Sheard |
J. Funct. Program. | 3 |
| 2003 | Exploiting Punctuation Semantics in Continuous Data StreamsabstractAs most current query processing architectures are already pipelined, it seems logical to apply them to data streams. However, two classes of query operators are impractical for processing long or infinite data streams. Unbounded stateful operators maintain state with no upper bound in size and, so, run out of memory. Blocking operators read an entire input before emitting a single output and, so, might never produce a result. We believe that a priori knowledge of a data stream can permit the use of such operators in some cases. We discuss a kind of stream semantics called punctuated streams. Punctuations in a stream mark the end of substreams allowing us to view an infinite stream as a mixture of finite streams. We introduce three kinds of invariants to specify the proper behavior of operators in the presence of punctuation. Pass invariants define when results can be passed on. Keep invariants define what must be kept in local state to continue successful operation. Propagation invariants define when punctuation can be passed on. We report on our initial implementation and show a strategy for proving implementations of these invariants are faithful to their relational counterparts. Peter A. Tucker, David Maier 0001, Tim Sheard, Leonidas Fegaras |
IEEE Trans. Knowl. Data Eng. | 3 |
| 2002 | Template meta-programming for HaskellabstractWe propose a new extension to the purely functional programming language Haskell that supports compile-time meta-programming. The purpose of the system is to support the algorithmic construction of programs at compile-time. The ability to generate code at compile time allows the programmer to implement such features as polytypic programs, macro-like expansion, user directed optimization (such as inlining), and the generation of supporting data structures and functions from existing data structures and functions. Our design is being implemented in the Glasgow Haskell Compiler, ghc. 1 Tim Sheard, Simon L. Peyton Jones |
Haskell | 1 |
| 2002 | Tagless staged interpreters for typed languagesabstractMulti-stage programming languages provide a convenient notation for explicitly staging programs. Staging a definitional interpreter for a domain specific language is one way of deriving an implementation that is both readable and efficient. In an untyped setting, staging an interpreter "removes a complete layer of interpretive overhead", just like partial evaluation. In a typed setting however, Hindley-Milner type systems do not allow us to exploit typing information in the language being interpreted. In practice, this can mean a slowdown cost by a factor of three or mor.Previously, both type specialization and tag elimination were applied to this problem. In this paper we propose an alternative approach, namely, expressing the definitional interpreter in a dependently typed programming language. We report on our experience with the issues that arise in writing such an interpreter and in designing such a language. .To demonstrate the soundness of combining staging and dependent types in a general sense, we formalize our language (called Meta-D) and prove its type safety. To formalize Meta-D, we extend Shao, Saha, Trifonov and Papaspyrou's λH language to a multi-level setting. Building on λH allows us to demonstrate type safety in a setting where the type language contains all the calculus of inductive constructions, but without having to repeat the work needed for establishing the soundness of that system. Emir Pasalic, Walid Taha, Tim Sheard |
ICFP | 3 |
| 2002 | Fine Control of Demand in Haskell
William L. Harrison, Tim Sheard, James Hook |
MPC | 2 |
| 2001 | Generic Unification via Two-Level Types and Parameterized ModulesabstractAs a functional pearl, we describe an efficient, modularized implementation of unification using the state of mutable reference cells to encode substitutions. We abstract our algorithms along two dimensions, first abstracting away from the structure of the terms to be unified, and second over the monad in which the mutable state is encapsulated. We choose this example to illustrate two important techniques that we believe many functional programmers would find useful. The first of these is the definition of recursive data types using two levels: a structure defining level, and a recursive knot-tying level. The second is the use of rank-2 polymorphism inside Haskell's record types to implement a form of type parameterized modules. Tim Sheard |
ICFP | 1 |
| 2000 | MetaML and multi-stage programming with explicit annotations
Walid Taha, Tim Sheard |
Theor. Comput. Sci. | 2 |
| 1999 | An Idealized MetaML: Simpler, and More Expressive
Eugenio Moggi, Walid Taha, Zine-El-Abidine Benaissa, Tim Sheard |
ESOP | 4 |
| 1998 | Multi-Stage Programming: Axiomatization and Type Safety
Walid Taha, Zine-El-Abidine Benaissa, Tim Sheard |
ICALP | 3 |
| 1998 | Dynamic Typing as Staged Type InferenceabstractDynamic typing extends statically typed languages with a universal datatype, simplifying programs which must manipulate other programs as data, such as distributed, persistent, interpretive and generic programs. Current approaches, however, limit the use of polymorphism in dynamic values, and can be syntactically awkward.We introduce a new approach to dynamic typing, based on staged computation, which allows a single type-reconstruction algorithm to execute partly at compile time and partly at run-time. This approach seamlessly extends a single type system to accommodate types that are only known at run-time, while still supporting both type inference and polymorphism. The system is significantly more expressive than other approaches. Furthermore it can be implemented efficiently; most of the type inference is done at compile-time, leaving only some residual unification for run-time.We demonstrate our approach by examples in a small polymorphic functional language, and present its type system, type reconstruction algorithm, and operational semantics. Our proposal could also be readily adapted to many other programming languages. Mark Shields, Tim Sheard, Simon L. Peyton Jones |
POPL | 2 |
| 1997 | Multi-Stage ProgrammingabstractNo abstract available. Walid Taha, Tim Sheard |
ICFP | 2 |
| 1997 | A Type-directed, On-line, Partial Evaluator for a Polymorphic LanguageabstractRecently, Olivier Danvy introduced a new, simple method for implementing powerful partial evaluators, namely type-directed partial evaluation[9]. He introduced a partial evaluator for the simply-typed lambda calculus (§2). This paper explores the possibility of using the same techniques over a lambda calculus with a richer type system. We generalize and extend Danvy's work in four ways:1. Our system handles a much richer language than that presented by Danvy, including all of the features functional programmers have come to expect, such as polymorphism (§5), inductive datatypes (§10), and recursion (§9).2. Our system includes a new systematic treatment of primitive operators (§7) and the propagation of residualized code (§7.1). This question has either been ignored or treated in an ad-hoc manner in previous work.3. Our system handles non-closed terms (§6). This makes type-directed partial evaluation much more practically useful, and can easily be extended to work in languages with parameterized module systems.4. Our system makes the whole process more efficient, by using a lazy, on-demand implementation (§8). The laziness of our implementation also causes the code produced to be more abstract and compact. Using this lazy implementation we have observed speedup ratios in the range 2--10, and code compactness improvements of more than 10 in some cases.All these extensions are made possible by a key technical innovation, namely, embedding types in values. Tim Sheard |
PEPM | 1 |
| 1997 | Multi-Stage Programming with Explicit AnnotationsabstractWe introduce MetaML, a statically-typed multi-stage programming language extending Nielson and Nielson's two stage notation to an arbitrary number of stages. MetaML extends previous work by introducing four distinct staging annotations which generalize those published previously [25, 12, 7, 6]We give a static semantics in which type checking is done once and for all before the first stage, and a dynamic semantics which introduces a new concept of cross-stage persistence, which requires that variables available in any stage are also available in all future stages.We illustrate that staging is a manual form of binding time analysis. We explain why, even in the presence of automatic binding time analysis, explicit annotations are useful, especially for programs with more than two stages.A thesis of this paper is that multi-stage languages are useful as programming languages in their own right, and should support features that make it possible for programmers to write staged computations without significantly changing their normal programming style. To illustrate this we provide a simple three stage example, and an extended two-stage example elaborating a number of practical issues. Walid Taha, Tim Sheard |
PEPM | 2 |
| 1996 | A Software Engineering Experiment in Software Component Generation
Richard B. Kieburtz, Laura McKinney, Jeffrey M. Bell, James Hook, Alex Kotov, Jeffrey Lewis, Dino Oliva, Tim Sheard, Ira Smith, Lisa Walton |
ICSE | 8 |
| 1996 | Revisiting Catamorphisms over Datatypes with Embedded Functions (or, Programs from Outer Space)abstractWe revisit the work of Paterson and of Meijer & Hutton, which describes how to construct catamorphisms for recursive datatype definitions that embed contravariant occurrences of the type being defined. Their construction requires, for each catamorphism, the definition of an anamorphism that has an inverse-like relationship to that catamorphism. We present an alternative construction, which replaces the stringent requirement that an inverse anamorphism be defined for each catamorphism with a more lenient restriction. The resulting construction has a more efficient implementation than that of Paterson, Meijer, and Hutton and the relevant restriction can be enforced by a Hindley-Milner type inference algorithm. We provide numerous examples illustrating our method. Leonidas Fegaras, Tim Sheard |
POPL | 2 |
| 1994 | Improving Programs Which Recurse over Multiple Inductive Structures
Leonidas Fegaras, Tim Sheard |
PEPM | 2 |
| 1992 | Uniform Traversal Combinators: Definition, Use and Properties
Leonidas Fegaras, Tim Sheard, David W. Stemple |
CADE | 2 |
| 1992 | Inheritance of Theory in the Adabtpl Language
Tim Sheard, David W. Stemple |
Comput. Lang. | 1 |
| 1991 | Automatic Generation and Use of Abstract Structure Operatorsabstractstructures are those structures definable by parametric and recursive type equations.Manipulation of the instances of such structures is often expressed as recursive functions.These functions can be quite complex and tedious to write, especially for types needed to model complex objects found in many modern applications.We define a set of operators for computing over abstract structures that provide a clean interface with large functionality.These operations Tim Sheard |
ACM Trans. Program. Lang. Syst. | 1 |
| 1990 | Exceeding the Limits of Polymorphism in Database Programming Languages
David W. Stemple, Leonidas Fegaras, Tim Sheard, Adolfo Socorro |
EDBT | 3 |
| 1989 | Automatic Verification of Database Transaction SafetyabstractMaintaining the integrity of databases is one of the promises of database management systems. This includes assuring that integrity constraints are invariants of database transactions. This is very difficult to accomplish efficiently in the presence of complex constraints and large amounts of data. One way to minimize the amount of processing required to maintain database integrity over transaction processing is to prove at compile-time that transactions cannot, if run atomically, disobey integrity constraints. We report on a system that performs such verification for a robust set of constraint and transaction classes. The system accepts database schemas written in a more or less traditional style and accepts programs in a high-level programming language. Automatic verification fast enough to be effective on current workstation hardware is performed. Tim Sheard, David W. Stemple |
ACM Trans. Database Syst. | 1 |
| 1988 | Resolving the Tension between Integrity and Security Using a Theorem ProverabstractSome information in databases and knowledge bases often needs to be protected from disclosure to certain users. Traditional solutions involving multi-level mechanisms are threatened by the user's ability to infer higher level information from the semantics of the application. We concentrate on the revelation of secrets through a user running transactions in the presence of database integrity constraints. We develop a method of specifying secrets formally that not only exposes a useful structure and equivalence among secrets but also allows a theorem prover to detect certain security lapses during transaction compilation time. Subhasish Mazumdar, David W. Stemple, Tim Sheard |
SIGMOD Conference | 3 |
| 1987 | On the Modes and Meaning of Feedback to Transaction DesignersabstractAn analysis of database transactions in the presence of database integrity constraints can lead to several modes of feedback to transaction designers. The different kinds of feedback include tests and updates that could be added to the transaction to make it obey the integrity constraints, as well as predicates representing post-conditions guaranteed by a transaction's execution. We discuss the various modes, meanings, and uses of feedback. We also discuss methods of generating feedback from integrity constraints, transaction details and theorems constituting both generic knowledge of database systems and specific knowledge about a particular database. Our methods are based on a running system that generates tailored theories about database systems from their schemas and uses these theories to prove that transactions obey integrity constraints. David W. Stemple, Subhasish Mazumdar, Tim Sheard |
SIGMOD Conference | 3 |
| 1986 | Abstract Data Types in Databases: Specification, Manipulation and AccessabstractThe basic data types from which records can be constructed in most database management systems are limited to a few simple types such as integers, reals, and character strings. There are many applications, exemplified by office automation, computer-aided design and geographic information systems, that could benefit from management of databases containing the complex objects typically used in programming these systems. We call databases that contain user defined abstract data types object-extended databases. In this paper we examine three aspects of providing support for object-extended databases: their specification, their manipulation by transactions, and access to them via queries. We show that a database specification scheme grounded formally in three abstract data types, finite sets, tuples and lists, accommodates the integration of databases and arbitrary abstract data types from the points of view of database designers, transaction programmers, and query writers and implemented.1 David W. Stemple, Tim Sheard, Ralph E. Bunker |
ICDE | 2 |
| 1986 | Incorporating theory into database system development
David W. Stemple, Tim Sheard, Ralph E. Bunker |
Inf. Process. Manag. | 2 |
| 1985 | Database Theory for Supporting Specification-Based Database Systems Development
David W. Stemple, Tim Sheard |
ICSE | 2 |
| 1985 | Coping with Complexity in Automated Reasoning about Database Systems
Tim Sheard, David W. Stemple |
VLDB | 1 |
| 1984 | Specification and Verification of Abstract Database TypesabstractA database system, comprising a schema, integrity constraints, transactions, and queries, constitutes a single abstract data type. This type, which we call an abstract database type, has as its object the database itself. Thus, the value set of such a type is the set of all legal database states, legal in the sense of obeying all the structural specifications of the schema and the semantic prescriptions of the integrity constraints. The database transactions are the operations of the abstract database type and must be functions on the value set of the type. A transaction specification is safe if it defines a function which is closed on the database state set, i. e., any execution of the transaction on a legal database yields a legal database.We propose an approach to the definition of abstract database types which is both usable by typical database designers and which facilitates the mechanical verification of transaction safety. The Boyer and Moore theorem proving technique is used to prove transaction safety theorems using abstract data type axioms and recursive functions generated from the database schema and transaction programs. David W. Stemple, Tim Sheard |
PODS | 2 |