EDBT 2026 Demo / reviewers in the wild / expert
Gary Lindstrom
dblp:l/GaryLindstrom
· DBLP profile ↗
19ranked-venue papers
9as first author
0since 2021 · last 2010
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 12 · 6 first-authorTheory of computation · 4 · 3 first-authorSystems, architecture and hardware · 3Databases, data management, data science and information retrieval · 2 · 1 first-authorComputer networks · 1 · 1 first-author
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.
| Software engineering, system software, and programming languages
6 papers |
Compilers and program optimization · 75% Programming languages and type systems · 17% Runtime systems and virtual machines · 8% | |
| Databases, data mining, and information retrieval
2 papers |
Database system architecture and tuning · 89% Transaction processing and concurrency control · 11% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Distributed systems · 84% Parallel and multicore computing · 16% | |
| Interdisciplinary, comprehensive, and emerging computing
1 paper |
Bioinformatics and computational biology · 100% |
Topics — the 17 heaviest of 22, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Database system architecture and tuning › database administration
database migration |
0.0 | 1 | 1997 | Migrating Relational Data to an OODB: Strategies and Lessons from a Molecular Biology Experience · OOPSLA 1997 |
Compilers and program optimization
code generation |
0.0 | 1 | 1997 | Flick: A Flexible, Optimizing IDL Compiler · PLDI 1997 |
Compilers and program optimization › code generation
stub generation |
0.0 | 1 | 1997 | Flick: A Flexible, Optimizing IDL Compiler · PLDI 1997 |
Distributed systems
remote procedure call |
0.0 | 1 | 1997 | Flick: A Flexible, Optimizing IDL Compiler · PLDI 1997 |
Programming languages and type systems
control structures |
0.0 | 2 | 1981 | Referencing and Retention in Block-Structured Coroutines · ACM Trans. Program. Lang. Syst. 1981 Backtracking in a Generalized Control Setting · ACM Trans. Program. Lang. Syst. 1979 |
Programming languages and type systems
functional programming |
0.0 | 1 | 1985 | Functional Programming and the Logical Variable · POPL 1985 |
Transaction processing and concurrency control
consistency |
0.0 | 1 | 1983 | Consistency and Currency in Functional Databases · INFOCOM 1983 |
Runtime systems and virtual machines
garbage collection |
0.0 | 1 | 1981 | Referencing and Retention in Block-Structured Coroutines · ACM Trans. Program. Lang. Syst. 1981 |
Runtime systems and virtual machines › garbage collection
mark-and-sweep collection |
0.0 | 1 | 1981 | Referencing and Retention in Block-Structured Coroutines · ACM Trans. Program. Lang. Syst. 1981 |
Runtime systems and virtual machines › garbage collection
reference counting |
0.0 | 1 | 1981 | Referencing and Retention in Block-Structured Coroutines · ACM Trans. Program. Lang. Syst. 1981 |
Programming languages and type systems › control structures
backtracking |
0.0 | 1 | 1979 | Backtracking in a Generalized Control Setting · ACM Trans. Program. Lang. Syst. 1979 |
Programming languages and type systems › control operators
coroutines |
0.0 | 1 | 1979 | Backtracking in a Generalized Control Setting · ACM Trans. Program. Lang. Syst. 1979 |
Compilers and program optimization
parsing |
0.0 | 1 | 1978 | Control Structure Aptness: A Cast Study Using Top-Down Parsing · ICSE 1978 |
Compilers and program optimization › parsing
top-down parsing |
0.0 | 1 | 1978 | Control Structure Aptness: A Cast Study Using Top-Down Parsing · ICSE 1978 |
Compilers and program optimization
incremental compilation |
0.0 | 1 | 1970 | The Design of Parsers for Incremental Language Processors · STOC 1970 |
Compilers and program optimization › parsing
incremental parsing |
0.0 | 1 | 1970 | The Design of Parsers for Incremental Language Processors · STOC 1970 |
Compilers and program optimization › parsing
parser generation |
0.0 | 1 | 1970 | The Design of Parsers for Incremental Language Processors · STOC 1970 |
Methods — techniques the papers use, named apart from their topics
marshaling optimization · 0.0intermediate representation · 0.0c++ framework · 0.0unification · 0.0graph reduction · 0.0dataflow rendering · 0.0complete partial order · 0.0static program structure analysis · 0.0language design · 0.0incremental parsing · 0.0fragment mapping · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2010 | ABI compatibility through a customizable languageabstractZL is a C++-compatible language in which high-level constructs, such as classes, are defined using macros over a C-like core language. This approach makes many parts of the language easily customizable. For example, since the class construct can be defined using macros, a programmer can have complete control over the memory layout of objects. Using this capability, a programmer can mitigate certain problems in software evolution such as fragile ABIs (Application Binary Interfaces) due to software changes and incompatible ABIs due to compiler changes. In this paper, we outline the problem of fragile and incompatible ABIs and show how ZL can be used to solve them. Kevin Atkinson, Matthew Flatt, Gary Lindstrom |
GPCE | 3 |
| 2005 | Model Checking Real Time Java Using Java PathFinder
Gary Lindstrom, Peter C. Mehlitz, Willem Visser |
ATVA | 1 |
| 2005 | UMM: an operational memory model specification framework with integrated model checking capabilityabstractAbstract Given the complicated nature of modern shared memory systems, it is vital to have a systematic approach to specifying and analyzing memory consistency requirements. In this paper, we present the UMM specification framework, which integrates two key features to support memory model verification: (i) it employs a simple and generic memory abstraction that can capture a large collection of memory models as guarded commands with a uniform notation, and (ii) it provides built‐in model checking capability to enable formal reasoning about thread behaviors. Using this framework, memory models can be specified in a parameterized style—designers can simply redefine a few bypassing rules and visibility ordering rules to obtain an executable specification of another memory model. We formalize several classical memory models, including Sequential Consistency, Coherence, and PRAM, to illustrate the general techniques of applying this framework. We then provide an alternative specification of the Java memory model, based on a proposal from Manson and Pugh, and demonstrate how to analyze Java thread semantics using model checking. We also compare our operational specification style with axiomatic specification styles and explore a mechanism that converts a memory model definition from one style to the other. Copyright © 2005 John Wiley & Sons, Ltd. Ganesh Gopalakrishnan, Gary Lindstrom |
Concurr. Pract. Exp. | 3 |
| 2004 | Memory-Model-Sensitive Data Race Analysis
Ganesh Gopalakrishnan, Gary Lindstrom |
ICFEM | 3 |
| 2004 | Nemos: A Framework for Axiomatic and Executable Specifications of Memory Consistency ModelsabstractSummary form only given. Conforming to the underlying memory consistency rules is a fundamental requirement for implementing shared memory systems and developing multiprocessor programs. In order to promote understanding and enable automated verification, it is highly desirable that a memory model specification be both declarative and executable. We present a specification framework called Nemos (Nonoperational yet Executable Memory Ordering Specifications), which supports precise specification and automatic execution in the same framework. We employ a uniform notation based on predicate logic to define shared memory semantics in an axiomatic as well as compositional style. We also apply constraint logic programming and SAT solving to make the axiomatic specifications executable for memory model analysis. To illustrate our approach, we formalize a collection of classical memory models, including sequential consistency, coherence, PRAM, causal consistency, and processor consistency. Ganesh Gopalakrishnan, Gary Lindstrom, Konrad Slind |
IPDPS | 3 |
| 1997 | Migrating Relational Data to an OODB: Strategies and Lessons from a Molecular Biology ExperienceabstractThe growing maturity of ODBMS technology is causing many enterprises to consider migrating relational databases to ODBIMS's. While data remapping is relatively straight-forward in most cases, greater challenges lie in economically and non-invasively adapting legacy application software. We report on a genetics laboratory database migration experiment, which was facilitated by both organization of the relational data in object-like form and a C++-framework designed to insulate application code from relational artifacts. Although this experiment was largely successful, we discovered to our surprise that the framework failed to encapsulate three subtle aspects of the relational implementation, thereby ''contaminating'' application code. We analyze the underlying issues, and offer cautionary guidance to future migrators. Jon R. Oler, Gary Lindstrom, Terence Critchlow |
OOPSLA | 2 |
| 1997 | Flick: A Flexible, Optimizing IDL CompilerabstractAn interface definition language (IDL) is a nontraditional language for describing interfaces between software components. IDL compilers generate "stubs" that provide separate communicating processes with the abstraction of local object invocation or procedure call. High-quality stub generation is essential for applications to benefit from component-based designs, whether the components reside on a single computer or on multiple networked hosts. Typical IDL compilers, however, do little code optimization, incorrectly assuming that interprocess communication is always the primary bottleneck. More generally, typical IDL compilers are "rigid" and limited to supporting only a single IDL, a fixed mapping onto a target language, and a narrow range of data encodings and transport mechanisms.Flick, our new IDL compiler, is based on the insight that IDLs are true languages amenable to modern compilation techniques. Flick exploits concepts from traditional programming language compilers to bring both flexibility and optimization to the domain of IDL compilation. Through the use of carefully chosen intermediate representations, Flick supports multiple IDLs, diverse data encodings, multiple transport mechanisms, and applies numerous optimizations to all of the code it generates. Our experiments show that Flick-generated stubs marshal data between 2 and 17 times faster than stubs produced by traditional IDL compilers, and on today's generic operating systems, increase end-to-end throughput by factors between 1.2 and 3.7. Eric Eide, Kevin Frei, Bryan Ford, Jay Lepreau, Gary Lindstrom |
PLDI | 5 |
| 1996 | An Application Framework For Module Composition Tools
Guruduth Banavar, Gary Lindstrom |
ECOOP | 2 |
| 1996 | The Design and Implementation of a Database For Human Genome Research (Position Paper)abstractThe Human Genome Project poses severe challenges in database design and implementation. These include comprehensive coverage of diverse data domains and user constituencies; robustness in the presence of incomplete, inconsistent and multi-version data; accessibility through many levels of abstraction, and scalability in content and organizational complexity. The paper presents a new data model developed to meet these challenges by the Utah Center for Human Genome Research. The central characteristics are: (i) a high level data model comprising five broadly applicable workflow notions; (ii) representation of those notions as objects in an extended relational model; (iii) expression of working database schemas as meta data in administration tables; (iv) population of the database through tables dependent on the meta data tables; and (v) implementation via a conventional relational database management system. The authors explore two advantages of this approach: the resulting representational flexibility, and the reflective use of meta data to accomplish schema evolution by ordinary updates. Implementation and performance pragmatics of this work are sketched, as well as implications for future database development. Rob Sargent, Dave Fuhrman, Terence Critchlow, Tony Di Sera, Robert Mecklenburg, Gary Lindstrom, Peter Cartwright |
SSDBM | 6 |
| 1987 | A Performance-Oriented Design for OR-Parallel Logic Programming
Peter Tinker, Gary Lindstrom |
ICLP | 2 |
| 1985 | Approaching Distributed Database Implementations through Functional Programming Concepts
Robert M. Keller, Gary Lindstrom |
ICDCS | 2 |
| 1985 | Functional Programming and the Logical VariableabstractLogic programming offers a variety of computational effects which go beyond those customarily found in functional programming languages. Among these effects is the notion of the “logical variable.” i.e. a value determined by the intersection of constraints, rather than by direct binding. We argue that this concept is “separable” from logic programming, and can sensibly be incorporated into existing functional languages. Moreover, this extension appears to significantly widen the range of problems which can efficiently be addressed in function form, albeit at some loss of conceptual purity. In particular, a form of side-effects arises under this extension, since a function invocation can exert constraints on variables shared with other function invocations. Nevertheless, we demonstrate that determinacy can be retained, even under parallel execution. The graph reduction language FGL is used for this demonstration, by being extended to a language FGL+LV permitting formal parameter expressions, with variables occurring therein bound by unification. The determinacy argument is based on a novel dataflow-like rendering of unification. In addition the complete partial order employed in this proof is unusual in its explicit representation of demand, a necessity given the “benign” side-effects that arise. An implementation technique is suggested, suitable for reduction architectures. Gary Lindstrom |
POPL | 1 |
| 1984 | Or-Parallelism on Applicative Architectures
Gary Lindstrom |
ICLP | 1 |
| 1983 | Consistency and Currency in Functional Databases
Gary Lindstrom, Frances Hunt |
INFOCOM | 1 |
| 1981 | Referencing and Retention in Block-Structured CoroutinesabstractThe combination of coroutines with recursive procedures is characteristic of many modern higher level languages offering advanced control structures (e.g., SIMULA-67, SL5, or INTERLISP). We say a language has block-structured coroutines (BSCRs) when static nesting considerations govern the usage of this control combination. Starting with the BSCR control description work of Wang and Dahl, this paper pursues further the implications of static program structure on BSCR programs in a particular compilation-oriented setting. Disciplines on BSCR reference assignment and individual control actions are defined, offering enhanced implementability and program comprehensibility. Of particular interest is a scope-based discipline on "detach " operations, which avoids the formation of idle chain subheads, an implementationally undesirable condition. The retention requirements of BSCRs are analyzed under a range of possible remote accessibility conditions, and two deletion strategies are then defined, keyed to these requirements. The first uses a special form of scope-sensitive reference counting, and the second does mark-sweep garbage collection, again exploiting static program structure. Space and time estimates for both methods are given, along with avenues for continuing research. Gary Lindstrom, Mary Lou Soffa |
ACM Trans. Program. Lang. Syst. | 1 |
| 1979 | Backtracking in a Generalized Control SettingabstractBacktracking is a powerful conceptual and practical programming language control structure. However, its application in general has been limited to global control over recursive programs. In this paper we explore the coherence and utility of applying backtracking in a more general control setting, namely, block-structured coroutines. The following criteria are proposed for such a control combination to be judged successful: (i) retention of each control form's individual semantics; (ii) coherent semantics for each legal application of the combination; (iii) nonpreeminence of either control form, and (iv) facilitation of genuinely novel programming effects. The attainability of these criteria is assessed, with the aid of an informal language design and three illustrative applications: (i) a dual tree walk program using coroutine-managed backtracking subsystems; (ii) a context-free language intersection tester using bilevel hierarchical backtracking, and (iii) an optimizing computer job scheduler using backtracking in a simulation language context. Full programs are given for each example, phrased in a Pascal extension offering both coroutines and backtracking (expressed through nondeterministic control). Gary Lindstrom |
ACM Trans. Program. Lang. Syst. | 1 |
| 1978 | Control Structure Aptness: A Cast Study Using Top-Down Parsing
Gary Lindstrom |
ICSE | 1 |
| 1973 | Scanning List Structures Without Stacks or Tag Bits
Gary Lindstrom |
Inf. Process. Lett. | 1 |
| 1970 | The Design of Parsers for Incremental Language ProcessorsabstractAn incremental language processor is one that accepts as input a sequence of substrings of the source language and maps them independently onto fragments in some object code. The ordered sequence of these object code fragments are then either compiled, in which case we have an incremental compiler, or interpreted. In the first case the advantage resulting is that subsequent changes in the source program entail only reprocessing the source fragments affected and recompiling the updated collection of object code fragments. In an environment where small changes are made frequently to large programs, e.g. debugging, the curtailment of reprocessing is attractive. In the second case the object code fragments are the actual run-time program representation, and hence inter-fragment relations are transiently evaluated as needed in the process of execution, with no long-term preservation of these relationships beyond the scope of their immediate need in execution time. This permits the possibility of program recomposition in the midst of execution, one of the principal characteristics of conversational computing. Gary Lindstrom |
STOC | 1 |