VLDB 2026 Research / reviewers in the wild / expert
David Gelernter
dblp:g/DavidGelernter
· DBLP profile ↗
21ranked-venue papers
8as first author
0since 2021 · last 2014
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 11 · 4 first-authorSoftware engineering, systems software and programming languages · 7 · 3 first-authorComputer networks · 2Artificial intelligence and machine learning · 1Graphics, computer vision, multimedia, augmented reality and games · 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.
| Computer networks
2 papers |
Routing and switching · 87% Transport protocols and congestion control · 13% | |
| Computer architecture, parallel and distributed computing, and storage systems
11 papers |
Parallel and multicore computing · 37% Distributed systems · 35% Interconnection networks and networks-on-chip · 18% | |
| Software engineering, system software, and programming languages
5 papers |
Programming languages and type systems · 58% Runtime systems and virtual machines · 22% Concurrent programming · 13% |
Topics — the 26 heaviest of 30, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Routing and switching
fault-tolerant routing |
0.2 | 1 | 2014 | Traffic engineering with forward fault correction · SIGCOMM 2014 |
Routing and switching
traffic engineering |
0.2 | 1 | 2014 | Traffic engineering with forward fault correction · SIGCOMM 2014 |
Transport protocols and congestion control › TCP congestion control
congestion avoidance |
0.1 | 1 | 2014 | Traffic engineering with forward fault correction · SIGCOMM 2014 |
Parallel and multicore computing
parallel programming models |
0.0 | 4 | 1988 | Matching Language and Hardware for Parallel Computation in the Linda Machine · IEEE Trans. Computers 1988 The S/Net's Linda Kernel · ACM Trans. Comput. Syst. 1986 Distributed Data Structures in Linda · POPL 1986 |
Parallel and multicore computing › parallel programming models › concurrent programming languages
linda |
0.0 | 3 | 1988 | Matching Language and Hardware for Parallel Computation in the Linda Machine · IEEE Trans. Computers 1988 The Architecture of a Linda Coprocessor · ISCA 1988 The S/Net's Linda Kernel · ACM Trans. Comput. Syst. 1986 |
Programming languages and type systems
language design |
0.0 | 3 | 1987 | Environments as First Class Objects · POPL 1987 Parallelism, persistence and meta-cleanliness in the symmetric Lisp interpreter · PLDI 1987 Generative Communication in Linda · ACM Trans. Program. Lang. Syst. 1985 |
Distributed systems › middleware
tuple space |
0.0 | 3 | 1988 | Matching Language and Hardware for Parallel Computation in the Linda Machine · IEEE Trans. Computers 1988 The S/Net's Linda Kernel (extended abstract) · SOSP 1985 The Architecture of a Linda Coprocessor · ISCA 1988 |
Knowledge, reasoning and agents › Knowledge representation and reasoning
case-based reasoning |
0.0 | 1 | 1991 | FGP: A Virtual Machine for Acquiring Knowledge from Cases · IJCAI 1991 |
Distributed systems
distributed data structures |
0.0 | 2 | 1986 | The S/Net's Linda Kernel · ACM Trans. Comput. Syst. 1986 Distributed Data Structures in Linda · POPL 1986 |
Distributed systems
network computer |
0.0 | 3 | 1985 | Staged Circuit Switching · IEEE Trans. Computers 1985 An Adaptive Communications Protocol for Network Computers · SIGMETRICS 1985 Staged circuit switching for network computers · SIGCOMM 1983 |
Interconnection networks and networks-on-chip › switching
circuit switching |
0.0 | 2 | 1985 | Staged Circuit Switching · IEEE Trans. Computers 1985 Staged circuit switching for network computers · SIGCOMM 1983 |
Interconnection networks and networks-on-chip › switching
message switching |
0.0 | 2 | 1985 | Staged Circuit Switching · IEEE Trans. Computers 1985 Staged circuit switching for network computers · SIGCOMM 1983 |
Distributed systems › operating system support
interprocess communication |
0.0 | 2 | 1985 | Generative Communication in Linda · ACM Trans. Program. Lang. Syst. 1985 Distributed Communication via Global Buffer · PODC 1982 |
Processor architecture and microarchitecture › special-purpose processor
coprocessor |
0.0 | 1 | 1988 | The Architecture of a Linda Coprocessor · ISCA 1988 |
Parallel and multicore computing
parallel programming environment |
0.0 | 1 | 1988 | The Architecture of a Linda Coprocessor · ISCA 1988 |
Programming languages and type systems
language semantics |
0.0 | 1 | 1987 | Parallelism, persistence and meta-cleanliness in the symmetric Lisp interpreter · PLDI 1987 |
Memory systems › shared memory
distributed shared memory |
0.0 | 3 | 1988 | The Architecture of a Linda Coprocessor · ISCA 1988 Generative Communication in Linda · ACM Trans. Program. Lang. Syst. 1985 The S/Net's Linda Kernel (extended abstract) · SOSP 1985 |
Programming languages and type systems
distributed programming languages |
0.0 | 1 | 1985 | Generative Communication in Linda · ACM Trans. Program. Lang. Syst. 1985 |
Distributed systems
communication protocols |
0.0 | 1 | 1985 | An Adaptive Communications Protocol for Network Computers · SIGMETRICS 1985 |
Routing and switching
deadlock-free routing |
0.0 | 1 | 1981 | A DAG-Based Algorithm for Prevention of Store-and-Forward Deadlock in Packet Networks · IEEE Trans. Computers 1981 |
Routing and switching › packet switching
packet-switched networks |
0.0 | 1 | 1981 | A DAG-Based Algorithm for Prevention of Store-and-Forward Deadlock in Packet Networks · IEEE Trans. Computers 1981 |
Transport protocols and congestion control › flow control
store-and-forward deadlock prevention |
0.0 | 1 | 1981 | A DAG-Based Algorithm for Prevention of Store-and-Forward Deadlock in Packet Networks · IEEE Trans. Computers 1981 |
Processor architecture and microarchitecture › special-purpose processor
coprocessor design |
0.0 | 1 | 1988 | Matching Language and Hardware for Parallel Computation in the Linda Machine · IEEE Trans. Computers 1988 |
Parallel and multicore computing › parallel computing
parallel programming languages |
0.0 | 1 | 1987 | Environments as First Class Objects · POPL 1987 |
Distributed systems › distributed computing theory
communicating processes |
0.0 | 1 | 1986 | Distributed Data Structures in Linda · POPL 1986 |
Parallel and multicore computing › parallel programming models
message passing |
0.0 | 1 | 1985 | An Adaptive Communications Protocol for Network Computers · SIGMETRICS 1985 |
Methods — techniques the papers use, named apart from their topics
sorting network · 0.2constraint encoding · 0.2logic programming · 0.0tuple space · 0.0microprogramming · 0.0tuple space coordination · 0.0tuple space communication · 0.0system design and implementation · 0.0finite-state machine interpreter · 0.0heuristic techniques · 0.0DAG-based algorithm · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2014 | Traffic engineering with forward fault correctionabstractFaults such as link failures and high switch configuration delays can cause heavy congestion and packet loss. Because it takes time to detect and react to faults, these conditions can last long---even tens of seconds. We propose forward fault correction (FFC), a proactive approach to handling faults. FFC spreads network traffic such that freedom from congestion is guaranteed under arbitrary combinations of up to k faults. We show how FFC can be practically realized by compactly encoding the constraints that arise from this large number of possible faults and solving them efficiently using sorting networks. Experiments with data from real networks show that, with negligible loss in overall network throughput, FFC can reduce data loss by a factor of 7--130 in well-provisioned networks, and reduce the loss of high-priority traffic to almost zero in well-utilized networks. Hongqiang Harry Liu, Srikanth Kandula, Ratul Mahajan, Ming Zhang 0005, David Gelernter |
SIGCOMM | 5 |
| 1997 | From Weaving Threads to Untangling the Web: A View of Coordination from Linda's Perspective
Robert D. Bjornson, Nicholas Carriero, David Gelernter |
COORDINATION | 3 |
| 1997 | On What Linda Is: Formal Description of Linda as a Reactive System
David Gelernter, Lenore D. Zuck |
COORDINATION | 1 |
| 1994 | The Linda® Alternative to Message-Passing Systems
Nicholas Carriero, David Gelernter, Timothy G. Mattson, Andrew H. Sherman |
Parallel Comput. | 2 |
| 1992 | Supercomputing out of recycled garbage: preliminary experience with PiranhaabstractIn this paper we present a new system for making use of the cyles routinely wasted in local area networks. The Piranha system harnesses these cycles to run explicitly parallel programs. Programs written for Piranha are specializations of Linda master/worker programs [5]. We have used Piranha to run a number of production applications. David Gelernter, David Kaminsky |
ICS | 1 |
| 1991 | FGP: A Virtual Machine for Acquiring Knowledge from Cases
Scott Fertig, David Gelernter |
IJCAI | 2 |
| 1988 | The Architecture of a Linda CoprocessorabstractThe architecture of a coprocessor that supports the communication primitives of the Linda parallel-programming environment in hardware is described. The coprocessor is a critical element in the architecture of the Linda machine, a MIMD (multiple-instruction, multiple-data-stream) parallel-processing system that is designed top-down from the specifications of Linda. Communication in Linda programs takes place through a logically shared associative memory mechanism called tuple space. The Linda machine, however, has no physically shared memory. The microprogrammable coprocessor implements distributed protocols for executing tuple-space operations over the Linda machine communication network. The coprocessor has been designed and is in the process of fabrication. The projected performance of the coprocessor is discussed and compared with software implementation of Linda.> Venkatesh Krishnaswamy, Sudhir Ahuja, Nicholas Carriero, David Gelernter |
ISCA | 4 |
| 1988 | Matching Language and Hardware for Parallel Computation in the Linda MachineabstractThe Linda Machine is a parallel computer that has been designed to support the Linda parallel programming environment in hardware. Programs in Linda communicate through a logically shared associative memory called tuple space. The goal of the Linda Machine project is to implement Linda's high-level shared-memory abstraction efficiently on a nonshared-memory architecture. The authors describe the machine's special-purpose communication network and its associated protocols, the design of the Linda coprocessor, and the way its interaction with the network supports global access to tuple space. The Linda Machine is in the process of fabrication. The authors discuss the machine's projected performance and compare this to software versions of Linda.> Sudhir Ahuja, Nicholas Carriero, David Gelernter, Venkatesh Krishnaswamy |
IEEE Trans. Computers | 3 |
| 1987 | Parallelism, persistence and meta-cleanliness in the symmetric Lisp interpreterabstractSymmetric Lisp is a programming language designed around first-class environments, where an environment is a dictionary that associates names with definitions or values. In this paper we describe the logical structure of the Symmetric Lisp interpreter. In other interpreted languages, the interpreter is a virtual machine that evaluates user input on the basis of its own internal state. The Symmetric Lisp interpreter, on the other hand, is a simple finite-state machine with no internal state. Its role is to attach user input to whatever environment the user has specified; such environments are transparent objects created by, maintained by and fully accessible to the user. The interpreter's semantics are secondary to the semantics of environments in Symmetric Lisp: it is the environment-object to which an expression is attached, not the interpreter, that controls the evaluation of expressions.This arrangement has several consequences. Because environments in Symmetric Lisp are governed by a parallel evaluation rule, the Symmetric Lisp interpreter is a parallel interpreter. A Symmetric Lisp environment evaluates to another environment; a session with the interpreter therefore yields a well-defined environment object as its result. Users are free to write routines that manage these interpreter-created objects - routines that list the elements of a namespace, coalesce environments, maintain multiple name definitions and so on precisely because environment objects may be freely inspected and manipulated. Because a named environment may contain other named environments as elements, interpreter-created objects may be regarded as hierarchical file systems. Because of the parallel evaluation semantics of environments, the interpreter is well-suited as an interface to a concurrent, language-based computer system that uses Symmetric Lisp as its base language. We argue that - in short - a basic semantic simplification in Symmetric Lisp promises a correspondingly basic increase in power at the user-interpreter interface. David Gelernter, Suresh Jagannathan, Thomas London |
PLDI | 1 |
| 1987 | Environments as First Class ObjectsabstractWe describe a programming language called Symmetric Lisp that treats environments as firstclass objects. Symmetric Lisp allows programmers to write expressions that evaluate to environments, and to create and denote variables and constants of type environment as well. One consequence is that the roles filled in other languages by a variety of limited, special purpose environment forms like records, structures, closures, modules, classes and abstract data types are filled instead by a single versatile and powerful structure. In addition to being its fundamental structuring tool, environments also serve as the basic functional object in the language. Because the elements of an environment are evaluated in parallel, Symmetric Lisp is a parallel programming language; because they may be assembled dyamically as well as statically, Symmetric Lisp accomodates an unusually flexible and simple (parallel) interpreter as well as other historysensitive applications requiring dynamic environments. We show that firstclass environments bring about fundamental changes in a language's structure: conventional distinctions between declarations and expressions, data structures and program structures, passive modules and active processes disappear. We argue that the resulting language is clean, simple and powerful. David Gelernter, Suresh Jagannathan, Thomas London |
POPL | 1 |
| 1986 | Distributed Data Structures in LindaabstractA distributed data structure is a data structure that can be manipulated by many parallel processes simultaneously. Distributed data structures are the natural complement to parallel program structures, where a parallel program (for our purposes) is one that is made up of many simultaneously active, communicating processes. Distributed data structures are impossible in most parallel programming languages, but they are supported in the parallel language Linda and they are central to Linda programming style. We outline Linda, then discuss some distributed data structures that have arisen in Linda programming experiments to date. Our intent is neither to discuss the design of the Linda system nor the performance of Linda programs, though we do comment on both topics; we are concerned instead with a few of the simpler and more basic techniques made possible by a language model that, we argue, is subtly but fundamentally different in its implications from most others.This material is based upon work supported by the National Science Foundation under Grant No. MCS-8303905. Jerry Leichter is supported by a Digital Equipment Corporation Graduate Engineering Education Program fellowship. Nicholas Carriero, David Gelernter, Jerrold Leichter |
POPL | 2 |
| 1986 | An Adaptive Communications Protocol for Network Computers
Hussein G. Badr, David Gelernter, Sunil Podar |
Perform. Evaluation | 2 |
| 1986 | The S/Net's Linda KernelabstractLinda is a parallel programming language that differs from other parallel languages in its simplicity and in its support for distributed data structures. The S/Net is a multicomputer, designed and built at AT&T Bell Laboratories, that is based on a fast, word-parallel bus interconnect. We describe the Linda-supporting communication kernel we have implemented on the S/Net. The implementation suggests that Linda's unusual shared-memory-like communication primitives can be made to run well in the absence of physically shared memory; the simplicity of the language and of our implementation's logical structure suggest that similar Linda implementations might readily be constructed on related architectures. We outline the language, and programming methodologies based on distributed data structures; we then describe the implementation, and the performance both of the Linda primitives themselves and of a simple S/Net-Linda matrix-multiplication program designed to exercise them. Nicholas Carriero, David Gelernter |
ACM Trans. Comput. Syst. | 2 |
| 1985 | Parallel Programming in Linda
David Gelernter, Nicholas Carriero, Sarat Chandran, Silva Chang |
ICPP | 1 |
| 1985 | An Adaptive Communications Protocol for Network ComputersabstractA network computer is a collection of computers designed to function as one machine. On a network computer, as opposed to a multiprocessor, constituent subcomputers are memory-disjoint and communicate only by some form of message exchange. Ensemble architectures like multiprocessors and network computers are of growing interest because of their capacity to support parallel programs, where a parallel program is one that is made up of many simultaneously-active, communicating processes. Parallel programs should, on an appropriate architecture, run faster than sequential programs, and, indeed, good speed-ups have been reported in parallel programming experiments in several domains, amongst which are AI, numerical problems, and system simulation. Our interest lies in network computers, particularly ones that range in size from several hundred nodes to several thousand. Hussein G. Badr, David Gelernter, Sunil Podar |
SIGMETRICS | 2 |
| 1985 | The S/Net's Linda Kernel (extended abstract)abstractNo abstract available. Nicholas Carriero, David Gelernter |
SOSP | 2 |
| 1985 | Staged Circuit SwitchingabstractStaged circuit switching (SCS) is a message-switching technique that combines a new protocol with new communication hardware. Protocol and hardware are designed specifically for networks that are intended to function as integrated general-purpose MIMD machines, i.e., for "network computers." Mauricio Arango, Hussein G. Badr, David Gelernter |
IEEE Trans. Computers | 3 |
| 1985 | Generative Communication in LindaabstractGenerative communication is the basis of a new distributed programming langauge that is intended for systems programming in distributed settings generally and on integrated network computers in particular. It differs from previous interprocess communication models in specifying that messages be added in tuple-structured form to the computation environment, where they exist as named, independent entities until some process chooses to receive them. Generative communication results in a number of distinguishing properties in the new language, Linda, that is built around it. Linda is fully distributed in space and distributed in time; it allows distributed sharing, continuation passing, and structured naming. We discuss these properties and their implications, then give a series of examples. Linda presents novel implementation problems that we discuss in Part II. We are particularly concerned with implementation of the dynamic global name space that the generative communication model requires. David Gelernter |
ACM Trans. Program. Lang. Syst. | 1 |
| 1983 | Staged circuit switching for network computersabstractStaged circuit switching (SCS) is a message-switching technique that combines a new protocol with new communication hardware. Protocol and hardware are designed specifically for networks that are intended to function as integrated, general-purpose MIMD machines, i.e. for "network computers". Mauricio Arango, David Gelernter, Hussein G. Badr, Arthur J. Bernstein |
SIGCOMM | 2 |
| 1982 | Distributed Communication via Global BufferabstractDesign and implementation of an inter-address-space communication mechanism for the SBN network computer are described. SBN's basic communication primitives appear in context of a new distributed systems programming language strongly supported by the network communication kernel. A model in which all communication takes place via a distributed global buffer results in simplicity, generality and power in the communication primitives. Implementation issues raised by the requirements of the global buffer model are discussed in context of the SBN impementation effort. David Gelernter, Arthur J. Bernstein |
PODC | 1 |
| 1981 | A DAG-Based Algorithm for Prevention of Store-and-Forward Deadlock in Packet NetworksabstractStore-and-forward deadlock (SFD) occurs in packet- switched computer networks when, among some cycle of packets buffered by the communication system, each packet in the cycle waits for the use of the buffer currently occupied by the next packet in the cycle. Several techniques for the prevention of SFD are known, but all exact some cost in terms of efficient and flexible packet handling. An ideal SFD-prevention technique is as unobtrusive as possible; it imposes no routing restrictions on packets, does not require that the buffer pool on each node grow with network size, and imposes no buffer-pool partitioning. All SFD-prevention techniques described so far lack some or all of these desirable properties. The new algorithm here described has all of them; in return, it imposes other unconventional costs. Under certain circumstances it requires that packets be rerouted around areas of potential deadlock, and one arbitrarily chosen node is required to accept within finite time any packet seeking entrance to its buffer pool, even if this requires erasing some packet. It is argued nonetheless that these costs are imposed infrequently enough and are sufficiently well manageable by heuristic techniques to make this new algorithm an attractive and practical alternative to the older techniques. An implementation designed for a microprocessor network now under construction is described. David Gelernter |
IEEE Trans. Computers | 1 |