VLDB 2026 Research / reviewers in the wild / expert
Atsushi Ohori
dblp:o/AtsushiOhori
· DBLP profile ↗
38ranked-venue papers
21as first author
2since 2021 · last 2022
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 28 · 15 first-author · 2 since 2021Theory of computation · 7 · 2 first-authorDatabases, data management, data science and information retrieval · 6 · 4 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Concurrent and parallel garbage collection for lightweight threads on multicore processors
Katsuhiro Ueno, Atsushi Ohori |
ISMM | 2 |
| 2021 | A Compilation Method for Dynamic Typing in ML
Atsushi Ohori, Katsuhiro Ueno |
APLAS | 1 |
| 2018 | Finitary polymorphism for optimizing type-directed compilationabstractWe develop a type-theoretical method for optimizing type directed compilation of polymorphic languages, implement the method in SML#, which is a full-scale compiler of Standard ML extended with several advanced features that require type-passing operational semantics, and report its effectiveness through performance evaluation. For this purpose, we first define a predicative second-order lambda calculus with finitary polymorphism, where each type abstraction is explicitly constrained to a finite type universe, and establishes the type soundness with respect to a type-passing operational semantics. Different from a calculus with stratified type universes, type universes of the calculus are terms that represent a finite set of instance types. We then develop a universe reconstruction algorithm that takes a term of the standard second-order lambda calculus, checks if the term is typable with finitary polymorphism, and, if typable, constructs a term in the calculus of finitary polymorphism. Based on these results, we present a type-based optimization method for polymorphic functions. Since our formalism is based on the second-order lambda calculus, it can be used to optimize various polymorphic languages. We implement the optimization method for native (tag-free) data representation and record polymorphism, and evaluate its effectiveness through benchmarks. The evaluation shows that 83.79% of type passing abstractions are eliminated, and achieves the average of 15.28% speed-up of compiled code. Atsushi Ohori, Katsuhiro Ueno, Hisayuki Mima |
Proc. ACM Program. Lang. | 1 |
| 2016 | A Calculus with Partially Dynamic Records for Typeful Manipulation of JSON ObjectsabstractThis paper investigates language constructs for high-level and type-safe manipulation of JSON objects in a typed functional language. A major obstacle in representing JSON in a static type system is their heterogeneous nature: in most practical JSON APIs, a JSON array is a heterogeneous list consisting of, for example, objects having common fields and possibly some optional fields. This paper presents a typed calculus that reconciles static typing constraints and heterogeneous JSON arrays based on the idea of partially dynamic records originally proposed and sketched by Buneman and Ohori for complex database object manipulation. Partially dynamic records are dynamically typed records, but some parts of their structures are statically known. This feature enables us to represent JSON objects as typed data structures. The proposed calculus smoothly extends with ML-style pattern matching and record polymorphism. These results yield a typed functional language where the programmer can directly import JSON data as terms having static types, and can manipulate them with the full benefits of static polymorphic type-checking. The proposed calculus has been embodied in SML#, an extension of Standard ML with record polymorphism and other practically useful features. This paper also reports on the details of the implementation and demonstrates its feasibility through examples using actual Web APIs. The SML# version 3.1.0 compiler includes JSON support presented in this paper, and is available from Tohoku University as open-source software under a BSD-style license. Atsushi Ohori, Katsuhiro Ueno, Tomohiro Sasaki, Daisuke Kikuchi |
ECOOP | 1 |
| 2016 | A fully concurrent garbage collector for functional programs on multicore processorsabstractThis paper presents a concurrent garbage collection method for functional programs running on a multicore processor. It is a concurrent extension of our bitmap-marking non-moving collector with Yuasa's snapshot-at-the-beginning strategy. Our collector is unobtrusive in the sense of the Doligez-Leroy-Gonthier collector; the collector does not stop any mutator thread nor does it force them to synchronize globally. The only critical sections between a mutator and the collector are the code to enqueue/dequeue a 32 kB allocation segment to/from a global segment list and the write barrier code to push an object pointer onto the collector's stack. Most of these data structures can be implemented in standard lock-free data structures. This achieves both efficient allocation and unobtrusive collection in a multicore system. The proposed method has been implemented in SML#, a full-scale Standard ML compiler supporting multiple native threads on multicore CPUs. Our benchmark tests show a drastically short pause time with reasonably low overhead compared to the sequential bitmap-marking collector. Katsuhiro Ueno, Atsushi Ohori |
ICFP | 2 |
| 2014 | The Essence of Ruby
Katsuhiro Ueno, Yutaka Fukasawa, Akimasa Morihata, Atsushi Ohori |
APLAS | 4 |
| 2014 | SML# in industry: a practical ERP system developmentabstractThis paper reports on our industry-academia project of using a functional language in business software production. The general motivation behind the project is our ultimate goal of adopting an ML-style higher-order typed functional language in a wide range of ordinary software development in industry. To probe the feasibility and identify various practical problems and needs, we have conducted a 15 month pilot project for developing an enterprise resource planning (ERP) system in SML#. The project has successfully completed as we have planned, demonstrating the feasibility of SML#. In particular, seamless integration of SQL and direct C language interface are shown to be useful in reliable and efficient development of a data intensive business application. During the program development, we have found several useful functional programming patterns and a number of possible extensions of an ML-style language with records. This paper reports on the project details and the lessons learned from the project. Atsushi Ohori, Katsuhiro Ueno, Kazunori Hoshi, Shinji Nozaki, Tasuku Makabe |
ICFP | 1 |
| 2011 | Making standard ML a practical database programming languageabstractIntegrating a database query language into a programming language is becoming increasingly important in recently emerging high-level cloud computing and other applications, where efficient and sophisticated data manipulation is required during computation. This paper reports on seamless integration of SQL into SML# - an extension of Standard ML. In the integrated language, the type system always infers a principal type for any type consistent SQL expression. This makes SQL queries first-class citizens, which can be freely combined with any other language constructs definable in Standard ML. For a program involving SQL queries, the compiler separates SQL queries and delegates their evaluation to a database server, e.g. PostgreSQL or MySQL in the currently implemented version. Atsushi Ohori, Katsuhiro Ueno |
ICFP | 1 |
| 2011 | An efficient non-moving garbage collector for functional languagesabstractMotivated by developing a memory management system that allows functional languages to seamlessly inter-operate with C, we propose an efficient non-moving garbage collection algorithm based on bitmap marking and report its implementation and performance evaluation. Katsuhiro Ueno, Atsushi Ohori, Toshiaki Otomo |
ICFP | 2 |
| 2007 | Lightweight fusion by fixed point promotionabstractThis paper proposes a lightweight fusion method for general recursive function definitions. Compared with existing proposals, our method has several significant practical features: it works for general recursive functions on general algebraic data types; it does not produce extra runtime overhea (except for possible code size increase due to the success of fusion); and it is readily incorporated in standard inlining optimization. This is achieved by extending the ordinary inlining process with a new fusion law that transforms a term of the form f o (fixgλx.E) to a new fixed point term fixhλx.E′ by promoting the function f through the fixed point operator. This is a sound syntactic transformation rule that is not sensitive to the types of f and g. This property makes our method applicable to wide range of functions including those with multi-parameters in both curried and uncurried forms. Although this method does not guarantee any form of completeness, it fuses typical examples discussed in the literature and others that involve accumulating parameters, either in the tt foldl-like specific forms or in general recursive forms, without any additional machinery. In order to substantiate our claim, we have implemented our method in a compiler. Although it is preliminary, it demonstrates practical feasibility of this method. Atsushi Ohori, Isao Sasano |
POPL | 1 |
| 2007 | A static type system for JVM access controlabstractThis article presents a static type system for the Java virtual machine (JVM) code that enforces an access control mechanism similar to that found in a Java implementation. In addition to verifying type consistency of a given JVM code, the type system statically verifies whether the code accesses only those resources that are granted by the prescribed access policy. The type system is proved to be sound with respect to an operational semantics that enforces access control dynamically, similar to Java stack inspection. This result ensures that “well-typed code cannot violate access policy.” The authors then develop a type inference algorithm and show that it is sound with respect to the type system. These results allow us to develop a static system for JVM access control, without resorting to costly runtime stack inspection. Tomoyuki Higuchi, Atsushi Ohori |
ACM Trans. Program. Lang. Syst. | 2 |
| 2007 | A proof theory for machine codeabstractThis article develops a proof theory for low-level code languages. We first define a proof system, which we refer to as the sequential sequent calculus , and show that it enjoys the cut elimination property and that its expressive power is the same as that of the natural deduction proof system. We then establish the Curry-Howard isomorphism between this proof system and a low-level code language by showing the following properties: (1) the set of proofs and the set of typed codes is in one-to-one correspondence, (2) the operational semantics of the code language is directly derived from the cut elimination procedure of the proof system, and (3) compilation and decompilation algorithms between the code language and the typed lambda calculus are extracted from the proof transformations between the sequential sequent calculus and the natural deduction proof system. This logical framework serves as a basis for the development of type systems of various low-level code languages, type-preserving compilation, and static code analysis. Atsushi Ohori |
ACM Trans. Program. Lang. Syst. | 1 |
| 2006 | A type system equivalent to static single assignmentabstractThis paper develops a static type system equivalent to static single assignment (SSA) form. In this type system, a type of a variable at some program point represents the control flows from the assignment statements that reach the program point. For this type system, we show that a derivable typing of a program corresponds to the program in SSA form. By this result, any SSA transformation can be interpreted as a type inference process in our type system. By adopting a result on efficient SSA transformation, we develop a type inference algorithm that reconstructs a type annotated code from a given code. These results provide a static alternative to SSA based compiler optimization without performing code transformation. Since this process does not change the code, it does not incur overhead due to insertion of φ functions. Another advantage of this type based approach is that it is not constrained to naming mechanism of variables and can therefore be combined with other static properties useful for compilation and code optimization such as liveness information of variables. As an application, we express optimizations as type-directed code transformations Yutaka Matsuno, Atsushi Ohori |
PPDP | 2 |
| 2006 | Compiling ML polymorphism with explicit layout bitmapabstractMost of the current implementations of functional languages adopt so-called “tagged data representations ” to support tracing garbage collection. The representations impose a burden of data conversion on the runtime performance and the interoperability between ML and other languages. In this paper, we present a type-directed com-pilation method for ML polymorphism that supports natural repre-sentations of integers and other atomic data. This is achieved by compiling ML so that each runtime object (a heap block or a stack frame) has a “bitmap ” that describes the pointer positions in the block. Since a polymorphic function may produce runtime objects of different types, the compiler needs to compute appropriate bitmaps for each instantiation of the function. This would require us to insert extra lambda abstractions and appli-cations to pass the bits required in bitmap calculations. This com-pilation process should be done for both stack frames and heap-allocated objects including functions ’ closures and their environ-ment records. We solve these problems by combining the type-directed compilation method with typed closure conversion, and type-preserving A-normalization. The resulting compilation process is shown to be sound with respect to an untyped operational semantics with bitmap-inspecting garbage collection. The proposed compilation method has been implemented for the full Standard ML Language, demonstrating its practical feasibility. Huu-Duc Nguyen, Atsushi Ohori |
PPDP | 2 |
| 2004 | A Type Theory for Krivine-Style Evaluation and Compilation
Kwanghoon Choi 0001, Atsushi Ohori |
APLAS | 2 |
| 2004 | Register allocation by proof transformation
Atsushi Ohori |
Sci. Comput. Program. | 1 |
| 2003 | Register Allocation by Proof Transformation
Atsushi Ohori |
ESOP | 1 |
| 2003 | A static type system for JVM access controlabstractThis paper presents a static type system for JAVA Virtual Machine (JVM) code that enforces an access control mechanism similar to the one found, for example, in a JAVA implementation. In addition to verifying type consistency of a given JVM code, the type system statically verifies that the code accesses only those resources that are granted by the prescribed access policy. The type system is proved to be sound with respect to an operational semantics that enforces access control dynamically, similarly to JAVA stack inspection. This result ensures that "well typed code cannot violate access policy." The paper then develops a type inference algorithm and shows that it is sound with respect to the type system and that it always infers a minimal set of access privileges. These results allows us to develop a static system for JVM access control without resorting to costly runtime stack inspection. Tomoyuki Higuchi, Atsushi Ohori |
ICFP | 2 |
| 2002 | An interoperable calculus for external object accessabstractBy extending an ML-style type system with record polymorphism, recursive type definition, and an ordering relation induced by field inclusion, it is possible to achieve seamless and type safe interoperability with an object-oriented language. Based on this observation, we define a polymorphic language that can directly access external objects and methods, and develop a type inference algorithm. This calculus enjoys the features of both higher-order programming with ML polymorphism and class-based object-oriented programming with dynamic method dispatch. To establish type safety, we define a sample object-oriented language with multiple inheritance as the target for interoperability, define an operational semantics of the calculus, and show that the type system is sound with respect to the operational semantics. These results have been implemented in our prototype interpretable language, which can access Java class files and other external resources. Atsushi Ohori, Kiyoshi Yamatodani |
ICFP | 1 |
| 2002 | Java bytecode as a typed term calculusabstractWe propose a type system for the Java bytecode language, prove the type soundness, and develop a type inference algorithm. In contrast to the existing proposals, our type system yields a typed term calculus similar to type systems of lambda calculi. This enables us to transfer existing techniques and results of type theory to a JVM-style bytecode language. We show that ML-style let polymorphism and recursive types can be used to type JVM subroutines, and that there is an ML-style type inference algorithm.The type inference algorithm has been implemented. The ability to verify type soundness is a simple corollary of the existence of type inference algorithm. Moreover, our type theoretical approach opens up various type safe extensions including higher-order methods, flexible polymorphic typing through polymorphic type inference, and type-preserving compilation. Tomoyuki Higuchi, Atsushi Ohori |
PPDP | 2 |
| 2001 | Proof-Directed De-compilation of Low-Level Code
Shin-ya Katsumata, Atsushi Ohori |
ESOP | 2 |
| 2001 | A typed context calculus
Masatomo Hashimoto, Atsushi Ohori |
Theor. Comput. Sci. | 2 |
| 1999 | Type Inference with Rank 1 Polymorphism for Type-Directed Compilation of MLabstractThis paper defines an extended polymorphic type system for an ML-style programming language, and develops a sound and complete type inference algorithm. Different frdm the conventional ML type discipline, the proposed type system allows full rank 1 polymorphism, where polymorphic types can appear in other types such as product types, disjoint union types and range types of function types. Because of this feature, the proposed type system significantly reduces the value-only restriction of polymorphism, which is currently adopted in most of ML-style impure languages. It also serves as a basis for efficient implementation of type-directed compilation of polymorphism. The extended type system achieves more efficient type inference algorithm, and it also contributes to develop more efficient type-passing implementation of polymorphism. We show that the conventional ML polymorphism sometimes introduces exponential overhead both at compile-time elaboration and run-time type-passing execution, and that these problems can be eliminated by our type inference system. Compared with a more powerful rank 2 type inference systems based on semi-unification, the proposed type inference algorithm infers a most general type for any typable expression by using the conventional first-order unification, and it is therefore easily adopted in existing implementation of ML family of languages. Atsushi Ohori, Nobuaki Yoshida |
ICFP | 1 |
| 1999 | Type-Directed Specialization of Polymorphism
Atsushi Ohori |
Inf. Comput. | 1 |
| 1999 | Parallel Functional Programming on Recursively Defined Data via Data-Parallel RecursionabstractThis article proposes a new language mechanism for data-parallel processing of dynamically allocated recursively defined data. Different from the conventional array-based data- parallelism, it allows parallel processing of general recursively defined data such as lists or trees in a functional way. This is achieved by representing a recursively defined datum as a system of equations, and defining new language constructs for parallel transformation of a system of equations. By integrating them with a higher-order functional language, we obtain a functional programming language suitable for describing data-parallel algorithms on recursively defined data in a declarative way. The language has an ML style polymorphic type system and a type sound operational semantics that uniformly integrates the parallel evaluation mechanism with the semantics of a typed functional language. We also show the intended parallel execution model behind the formal semantics, assuming an idealized distributed memory multicomputer. Susumu Nishimura, Atsushi Ohori |
J. Funct. Program. | 2 |
| 1996 | An Equational Object-Oriented Data Model and its Data-Parallel Query LanguageabstractThis paper presents an equational formulation of an object-oriented data model. In this model, a database is represented as a system of equations over a set of oid's, and a database query is a transformation of a system of equations into another system of equations. During the query processing, our model maintains an equivalence relation over oid's that relates oid's corresponding to the same "real-world entity." By this mechanism, the model achieves a declarative set-based query language and views for objects with identity. Moreover, the query primitives are designed so that queries including object traversal can be evaluated in a data-parallel fashion. Susumu Nishimura, Atsushi Ohori, Keishi Tajima |
OOPSLA | 2 |
| 1996 | Polymorphism and Type Inference in Database ProgrammingabstractIn order to find a static type system that adequately supports database languages, we need to express the most general type of a program that involves database operations. This can be achieved through an extension to the type system of ML that captures the polymorphic nation of field selection, together with a techniques that generalizes relational operators to arbitrary data structures. The combination provides a statically typed language in which generalized relational databases may be cleanly represented as typed structures. As in ML types are inferred, which relieves the programmer of making the type assertions that may be required in a complex database environment. These extensions may also be used to provide static polymorphic typechecking in object-oriented languages and databases. A problem that arises with object-oriented databases is the apparent need for dynamic typechecking when dealing queries on heterogeneous collections of objects. An extension of the type system needed for generalized relational operations can also be used for manipulating collections of dynamically typed values in a statically typed language. A prototype language based on these ideas has been implemented. While it lacks a proper treatment of persistent data, it demonstrates that a wide variety of database structures can be cleanly represented in a polymorphic programming language. Peter Buneman, Atsushi Ohori |
ACM Trans. Database Syst. | 2 |
| 1995 | A Polymorphic Record Calculus and Its CompilationabstractThe motivation of this work is to provide a type-theoretical basis for developing a practical polymorphic programming language with labeled records and labeled variants.Our goal is to establish both a polymorphic type discipline and an efficient compilation method for a calculus with those labeled data structures.We define a second-order, polymorphic record calculus as an extension of Girard-Reynolds polymorphic lambda calculus.We then develop an ML-style type inference algorithm for a predicative subset of the second-order record calculus.The soundness of the type system and the completeness of the type inference algorithm are shown.These results extend Milner's type inference algorithm, Damas and Milner's account of ML's let polymorphism, and Harper and Mitchell's analysis on XML To establish an efficient compilation method for the polymorphic record calculus, we first define an implementation calculus, where records are represented as vectors whose elements are accessed by direct indexing, and variants are represented as values tagged with a natural number indicating the position in the vector of functions m a switch statement.We then develop an algorithm to translate the polymorphic record calculus into the implementation calculus using type reformation obtained by the type inference algorithm.The correctness of the compilation algorithm is proved, that is, the compdation algorithm is shown to preserve both typing and the operational behavior of a program.Based on these results, Standard ML has been extended with labeled records, and its compiler has been implemented. Atsushi Ohori |
ACM Trans. Program. Lang. Syst. | 1 |
| 1994 | A Polymorphic Calculus for Views and Object SharingabstractWe present a typed polymorphic calculus that supports a general mechanism for view definition and object sharing among classes. In this calculus, a class can contain inclusion specifications of objects from other classes. Each such specification consists of a predicate determining the subset of objects to be included and a viewing function under which those included objects are manipulated. Both predicates and viewing functions can be any type consistent programs definable in the polymorphic calculus. Inclusion specifications among classes can be cyclic, allowing mutually recursive class definitions. These features achieve flexible view definitions and wide range of class organizations in a compact and elegant way. Moreover, the calculus provides a suitable set of operations for views and classes so that the programmer can manipulate views and classes just the same way as one deals with ordinary records and sets. Atsushi Ohori, Keishi Tajima |
PODS | 1 |
| 1993 | Semantics for Communication Primitives in an Polymorphic LanguageabstractWe propose a method to extend an ML-style polymorphic language with transparent communication primitives, and give their precise operational semantics. These primitives allow any polymorphic programs definable in ML to be used remotely in a manner completely transparent to the programmer. Furthermore, communicating programs may be based on different architecture and use different data representations. Atsushi Ohori, Kazuhiko Kato |
POPL | 1 |
| 1992 | A Compilation Method for ML-Style Polymorphic Record CalculiabstractPolymorphic record calculi have recently attracted much attention as a typed foundation for object-oriented programming. This is based on the fact that a function that selects a field l of a record can be given a polymorphic type that enables it to be applied to various records containing a field l. Recent studies have established techniques to develop an ML-style type inference algorithm for such a polymorphic type system. There seems to be, however, no established method to compile an ML-style polymorphic record calculus into efficient code. The purpose of this paper is to present one such method. We define a polymorphic record calculus as an extension of Damas and Miler's proof system for ML. For this calculus, we define an implementation calculus where records are represented as arrays of (references to) values and field selection is performed by direct indexing. To represent polymorphic field selection, the implementation calculus contains an abstraction mechanism over indexes. We then develop an algorithm to translate the polymorphic record calculus into the implementation calculus by refining a type inference algorithm; it simultaneously computes a principal type scheme in the polymorphic record calculus and a correct implementation term in the implementation calculus. The type inference is shown to be sound and complete in the sense of Damas-Milner's algorithm for ML. Moreover, the polymorphic type system is shown to be sound with respect to an operational semantics of the translated terms in the implementation calculus. Atsushi Ohori |
POPL | 1 |
| 1991 | Using Powerdomains to Generalize Relational DatabasesabstractMuch of relational algebra and the underlying principles of relational database design have a simple representation in the theory of domains that is traditionally used in the denotational semantics of programming languages. By investigating the possible orderings on powerdomains that are well known in the study of nondeterminism and concurrency it is possible to show that many of the ideas in relational databases apply to structures that are much more general than relations. This also suggests a method of representing database objects as typed objects in programming languages. In this paper we show how operations such as natural join and projection—which are fundamental to relational database design—can be generalized, and we use this generalized framework to give characterizations of several relational database concepts including functional dependencies and universal relations. All of these have a simple-minded semantics in terms of the underlying domains, which can be thought of as domains of partial descriptions of “real-world” objects. We also discuss the applicability of relational database theory to nonrelational structures such as records with variants, higher-order relations, recursive structures and other ordered spaces. Peter Buneman, Achim Jung, Atsushi Ohori |
Theor. Comput. Sci. | 3 |
| 1990 | Representing Object Identity in a Pure Functional Language
Atsushi Ohori |
ICDT | 1 |
| 1990 | Semantics of Types for Database ObjectsabstractA number of data models for complex database objects have been proposed. Unfortunately, these data models have not been well integrated in type systems of programming languages. This paper develops a mathematical theory for types and domains of databases that can serve as a “bridge” between complex data models and type systems of programming languages. Based on this framework, a concrete type system for complex database objects and its semantic domain are constructed. The type system allows arbitrarily complex structures that can be constructed by labeled records, labeled disjoint unions, finite sets and recursion, covering most of the proposed complex database objects. Moreover, its semantic domain is a proper generalization of the relational model to those complex structures. In addition to standard operations that can be found in programming languages, join and projection are available as polymorphically typed computable functions on arbitrary complex objects. It is then shown that both the type system and the semantic domain can be uniformly integrated in an ML-like programming language. This leads us to develop a database programming language that supports rich data structures and powerful operations for databases while enjoying desirable features of modern type systems of programming languages including polymorphism and static type inference. Atsushi Ohori |
Theor. Comput. Sci. | 1 |
| 1989 | Static Type Inference for Parametric ClassesabstractCentral features of object-oriented programming are method inheritance and data abstraction attained through hierarchical organization of classes. Recent studies show that method inheritance can be nicely supported by ML style type inference when extended to labeled records. This is based on the fact that a function that selects a field ƒ of a record can be given a polymorphic type that enables it to be applied to any record which contains a field ƒ. Several type systems also provide data abstraction through abstract type declarations. However, these two features have not yet been properly integrated in a statically checked polymorphic type system. This paper proposes a static type system that achieves this integration in an ML-like polymorphic language by adding a class construct that allows the programmer to build a hierarchy of classes connected by multiple inheritance declarations. Moreover, classes can be parameterized by types allowing “generic” definitions. The type correctness of class declarations is statically checked by the type system. The type system also infers a principal scheme for any type correct program containing methods and objects defined in classes. Atsushi Ohori, Peter Buneman |
OOPSLA | 1 |
| 1989 | Database Programming in Machiavelli - a Polymorphic Language with Static Type InferenceabstractMachiavelli is a polymorphically typed programming language in the spirit of ML, but supports an extended method of type inferencing that makes its polymorphism more general and appropriate for database applications. In particular, a function that selects a field ƒ of a records is polymorphic in the sense that it can be applied to any record which contains a field ƒ with the appropriate type. When combined with a set data type and database operations including join and projection, this provides a natural medium for relational database programming. Moreover, by implementing database objects as reference types and generating the appropriate views — sets of structures with “identity” — we can achieve a degree of static type checking for object-oriented databases. Atsushi Ohori, Peter Buneman, Val Tannen |
SIGMOD Conference | 1 |
| 1988 | Semantics of Types for Database Objects
Atsushi Ohori |
ICDT | 1 |
| 1986 | A Domain Theoretic Approach to Higher-Order Relations
Peter Buneman, Atsushi Ohori |
ICDT | 2 |