Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Alan J. Demers

dblp:03/5860 · DBLP profile ↗
← Back
69ranked-venue papers
17as first author
0since 2021 · last 2015
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Databases, data management, data science and information retrieval · 28 · 3 first-authorSoftware engineering, systems software and programming languages · 19 · 8 first-authorTheory of computation · 8 · 1 first-authorSystems, architecture and hardware · 6 · 2 first-authorComputer networks · 5 · 1 first-authorSecurity and privacy · 2 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 2Artificial intelligence and machine learning · 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 architecture, parallel and distributed computing, and storage systems
22 papers
Distributed systems · 32% Cloud and datacenter computing · 24% Parallel and multicore computing · 13%
Databases, data mining, and information retrieval
12 papers
Spatial and temporal data management · 23% Data models and query languages · 22% Information retrieval · 15%
Software engineering, system software, and programming languages
18 papers
Programming languages and type systems · 36% Services computing and microservices · 30% Program synthesis and code generation · 14%
Theoretical computer science
6 papers
Graph algorithms and graph theory · 86% Logic in computer science · 8% Approximation and online algorithms · 2%
Computer networks
3 papers
Wireless networking · 50% Internet of things and sensor networks · 45% Internet architecture and protocols · 3%

Topics — the 30 heaviest of 120, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Cloud and datacenter computing
application deployment
0.422015
ClouDiA: a deployment advisor for public clouds · VLDB J. 2015
ClouDiA: A Deployment Advisor for Public Clouds · Proc. VLDB Endow. 2012
Cloud and datacenter computing › resource management
cloud resource management
0.422015
ClouDiA: a deployment advisor for public clouds · VLDB J. 2015
ClouDiA: A Deployment Advisor for Public Clouds · Proc. VLDB Endow. 2012
Distributed systems
fault tolerance
0.342011
BRRL: a recovery library for main-memory applications in the cloud · SIGMOD Conference 2011
Dynamic Approaches to In-network Aggregation · ICDE 2009
Dealing with Server Corruption in Weakly Consistent, Replicated Data Systems · MobiCom 1997
Storage systems
durability and recovery
0.222011
Fast checkpoint recovery algorithms for frequently consistent applications · SIGMOD Conference 2011
BRRL: a recovery library for main-memory applications in the cloud · SIGMOD Conference 2011
Information retrieval › ranking
learning to rank
0.212015
Edge-Weighted Personalized PageRank: Breaking A Decade-Old Performance Barrier · KDD 2015
Cloud and datacenter computing › resource allocation › workload allocation
latency-aware placement
0.212015
ClouDiA: a deployment advisor for public clouds · VLDB J. 2015
Graph algorithms and graph theory › centrality › pagerank
personalized pagerank
0.212015
Edge-Weighted Personalized PageRank: Breaking A Decade-Old Performance Barrier · KDD 2015
Spatial and temporal data management › spatial query processing › spatial join
in-memory spatial join
0.212013
An Experimental Analysis of Iterated Spatial Joins in Main Memory · Proc. VLDB Endow. 2013
Spatial and temporal data management › spatial query processing
spatial join
0.212013
An Experimental Analysis of Iterated Spatial Joins in Main Memory · Proc. VLDB Endow. 2013
Performance modeling and evaluation
benchmarking
0.212013
An Experimental Analysis of Iterated Spatial Joins in Main Memory · Proc. VLDB Endow. 2013
Parallel and multicore computing
graph processing
0.212013
Fast Iterative Graph Computation with Block Updates · Proc. VLDB Endow. 2013
Parallel and multicore computing › graph processing
iterative graph processing
0.212013
Fast Iterative Graph Computation with Block Updates · Proc. VLDB Endow. 2013
Memory systems
memory wall
0.212013
Fast Iterative Graph Computation with Block Updates · Proc. VLDB Endow. 2013
Distributed systems
replication
0.152009
Scalability for Virtual Worlds · ICDE 2009
Flexible Update Propagation for Weakly Consistent Replication · SOSP 1997
Dealing with Server Corruption in Weakly Consistent, Replicated Data Systems · MobiCom 1997
Data stream processing
complex event processing
0.122007
Cayuga: a high-performance event processing engine · SIGMOD Conference 2007
What is "next" in event processing? · PODS 2007
Distributed systems
deployment optimization
0.112012
ClouDiA: A Deployment Advisor for Public Clouds · Proc. VLDB Endow. 2012
Distributed systems
gossip protocols
0.142005
Correctness of a gossip based membership protocol · PODC 2005
Spatial gossip and resource location protocols · J. ACM 2004
Spatial gossip and resource location protocols · STOC 2001
Transaction processing and concurrency control › OLTP
in-memory transaction processing
0.112011
Fast checkpoint recovery algorithms for frequently consistent applications · SIGMOD Conference 2011
Distributed systems › fault tolerance
checkpointing
0.112011
BRRL: a recovery library for main-memory applications in the cloud · SIGMOD Conference 2011
Performance modeling and evaluation › simulation
agent-based simulation
0.112010
Behavioral Simulations in MapReduce · Proc. VLDB Endow. 2010
Parallel and multicore computing › data-parallel programming
mapreduce
0.112010
Behavioral Simulations in MapReduce · Proc. VLDB Endow. 2010
Parallel and multicore computing
parallel programming models and runtimes
0.112010
Behavioral Simulations in MapReduce · Proc. VLDB Endow. 2010
Performance modeling and evaluation › simulation › parallel and distributed simulation
parallel simulation
0.112010
Behavioral Simulations in MapReduce · Proc. VLDB Endow. 2010
Internet of things and sensor networks › wireless sensor network
in-network aggregation
0.112009
Dynamic Approaches to In-network Aggregation · ICDE 2009
Hardware reliability and fault tolerance › error recovery
checkpoint recovery
0.112009
An Evaluation of Checkpoint Recovery for Massively Multiplayer Online Games · Proc. VLDB Endow. 2009
Storage systems
database recovery
0.112009
An Evaluation of Checkpoint Recovery for Massively Multiplayer Online Games · Proc. VLDB Endow. 2009
Distributed systems › distributed interactive applications › collaborative computing
distributed virtual environments
0.112009
Scalability for Virtual Worlds · ICDE 2009
Storage systems › storage reliability
durability
0.112009
An Evaluation of Checkpoint Recovery for Massively Multiplayer Online Games · Proc. VLDB Endow. 2009
Memory systems
main memory database
0.112009
An Evaluation of Checkpoint Recovery for Massively Multiplayer Online Games · Proc. VLDB Endow. 2009
Distributed systems › consistency models
distributed consistency
0.112008
SEMMO: a scalable engine for massively multiplayer online games · SIGMOD Conference 2008

Methods — techniques the papers use, named apart from their topics

model reduction · 0.4mixed integer programming · 0.4constraint programming · 0.4synchronous traversal · 0.3r-tree · 0.3index nested loop · 0.3simulation · 0.2vertex-centric programming · 0.2block-aware runtime · 0.2schema-aware checkpointing · 0.1lock-free checkpointing · 0.1frequent consistency points · 0.1data parallelism · 0.1spatial join · 0.1dataflow compilation · 0.1automatic parallelization · 0.1unstructured aggregation protocols · 0.1trace-driven evaluation · 0.1
YearPublicationVenuePosition
2015 Centiman: elastic, high performance optimistic concurrency control by watermarking
abstract
We present Centiman, a system for high performance, elastic transaction processing in the cloud. Centiman provides serializability on top of a key-value store with a lightweight protocol based on optimistic concurrency control (OCC).
Bailu Ding, Lucja Kot, Alan J. Demers, Johannes Gehrke
SoCC3
2015 Edge-Weighted Personalized PageRank: Breaking A Decade-Old Performance Barrier
abstract
Personalized PageRank is a standard tool for finding vertices in a graph that are most relevant to a query or user. To personalize PageRank, one adjusts node weights or edge weights that determine teleport probabilities and transition probabilities in a random surfer model. There are many fast methods to approximate PageRank when the node weights are personalized; however, personalization based on edge weights has been an open problem since the dawn of personalized PageRank over a decade ago. In this paper, we describe the first fast algorithm for computing PageRank on general graphs when the edge weights are personalized. Our method, which is based on model reduction, outperforms existing methods by nearly five orders of magnitude. This huge performance gain over previous work allows us --- for the very first time --- to solve learning-to-rank problems for edge weight personalization at interactive speeds, a goal that had not previously been achievable for this class of problems.
Wenlei Xie, David Bindel, Alan J. Demers, Johannes Gehrke
KDD3
2015 ClouDiA: a deployment advisor for public clouds
abstract
An increasing number of distributed data-driven applications are moving into shared public clouds. By sharing resources and operating at scale, public clouds promise higher utilization and lower costs than private clusters. To achieve high utilization, however, cloud providers inevitably allocate virtual machine instances non-contiguously; i.e., instances of a given application may end-up in physically distant machines in the cloud. This allocation strategy can lead to large differences in average latency between instances. For a large class of applications, this difference can result in significant performance degradation, unless care is taken in how application components are mapped to instances. In this paper, we propose ClouDiA, a general deployment advisor that selects application node deployments minimizing either (i) the largest latency between application nodes, or (ii) the longest critical path among all application nodes. ClouDiA employs a number of algorithmic techniques, including mixed-integer programming and constraint programming techniques, to efficiently search the space of possible mappings of application nodes to instances. Through experiments with synthetic and real applications in Amazon EC2, we show that mean latency is a robust metric to model communication cost in these applications and that our search techniques yield a 15–55 % reduction in time-to-solution or service response time, without any need for modifying application code.
Tao Zou 0002, Ronan Le Bras 0001, Marcos Antonio Vaz Salles, Alan J. Demers, Johannes Gehrke
VLDB J.4
2013 Asynchronous Large-Scale Graph Processing Made Easy
Guozhang Wang, Wenlei Xie, Alan J. Demers, Johannes Gehrke
CIDR3
2013 An Experimental Analysis of Iterated Spatial Joins in Main Memory
abstract
Many modern applications rely on high-performance processing of spatial data. Examples include location-based services, games, virtual worlds, and scientific simulations such as molecular dynamics and behavioral simulations. These applications deal with large numbers of moving objects that continuously sense their environment, and their data access can often be abstracted as a repeated spatial join. Updates to object positions are interspersed with these join operations, and batched for performance. Even for the most demanding scenarios, the data involved in these joins fits comfortably in the main memory of a cluster of machines, and most applications run completely in main memory for performance reasons. Choosing appropriate spatial join algorithms is challenging due to the large number of techniques in the literature. In this paper, we perform an extensive evaluation of repeated spatial join algorithms for distance (range) queries in main memory. Our study is unique in breadth when compared to previous work: We implement, tune, and compare ten distinct algorithms on several workloads drawn from the simulation and spatial indexing literature. We explore the design space of both index nested loops algorithms and specialized join algorithms, as well as the use of moving object indices that can be incrementally maintained. Surprisingly, we find that when queries and updates can be batched, repeatedly re-computing the join result from scratch outperforms using a moving object index in all but the most extreme cases. This suggests that--given the code complexity of index structures for moving objects -- specialized join strategies over simple index structures, such as Synchronous Traversal over R-Trees, should be the methods of choice for the above applications.
Ben Sowell, Marcos Antonio Vaz Salles, Tuan Cao, Alan J. Demers, Johannes Gehrke
Proc. VLDB Endow.4
2013 Fast Iterative Graph Computation with Block Updates
abstract
Scaling iterative graph processing applications to large graphs is an important problem. Performance is critical, as data scientists need to execute graph programs many times with varying parameters. The need for a high-level, high-performance programming model has inspired much research on graph programming frameworks. In this paper, we show that the important class of computationally light graph applications - applications that perform little computation per vertex - has severe scalability problems across multiple cores as these applications hit an early "memory wall" that limits their speedup. We propose a novel block-oriented computation model, in which computation is iterated locally over blocks of highly connected nodes, significantly improving the amount of computation per cache miss. Following this model, we describe the design and implementation of a block-aware graph processing runtime that keeps the familiar vertex-centric programming paradigm while reaping the benefits of block-oriented execution. Our experiments show that block-oriented execution significantly improves the performance of our framework for several graph applications.
Wenlei Xie, Guozhang Wang, David Bindel, Alan J. Demers, Johannes Gehrke
Proc. VLDB Endow.4
2012 ClouDiA: A Deployment Advisor for Public Clouds
abstract
An increasing number of distributed data-driven applications are moving into shared public clouds. By sharing resources and operating at scale, public clouds promise higher utilization and lower costs than private clusters. To achieve high utilization, however, cloud providers inevitably allocate virtual machine instances noncontiguously, i.e., instances of a given application may end up in physically distant machines in the cloud. This allocation strategy can lead to large differences in average latency between instances. For a large class of applications, this difference can result in significant performance degradation, unless care is taken in how application components are mapped to instances. In this paper, we propose ClouDiA, a general deployment advisor that selects application node deployments minimizing either (i) the largest latency between application nodes, or (ii) the longest critical path among all application nodes. ClouDiA employs mixed-integer programming and constraint programming techniques to efficiently search the space of possible mappings of application nodes to instances. Through experiments with synthetic and real applications in Amazon EC2, we show that our techniques yield a 15% to 55% reduction in time-to-solution or service response time, without any need for modifying application code.
Tao Zou 0002, Ronan Le Bras 0001, Marcos Antonio Vaz Salles, Alan J. Demers, Johannes Gehrke
Proc. VLDB Endow.4
2011 Making time-stepped applications tick in the cloud
abstract
Scientists are currently evaluating the cloud as a new platform. Many important scientific applications, however, perform poorly in the cloud. These applications proceed in highly parallel discrete time-steps or "ticks," using logical synchronization barriers at tick boundaries. We observe that network jitter in the cloud can severely increase the time required for communication in these applications, significantly increasing overall running time.
Tao Zou 0002, Guozhang Wang, Marcos Antonio Vaz Salles, David Bindel, Alan J. Demers, Johannes Gehrke, Walker M. White
SoCC5
2011 BRRL: a recovery library for main-memory applications in the cloud
abstract
In this demonstration we present BRRL, a library for making distributed main-memory applications fault tolerant. BRRL is optimized for cloud applications with frequent points of consistency that use data-parallelism to avoid complex concurrency control mechanisms. BRRL differs from existing recovery libraries by providing a simple table abstraction and using schema information to optimize checkpointing. We will demonstrate the utility of BRRL using a distributed transaction processing system and a platform for scientific behavioral simulations.
Tuan Cao, Ben Sowell, Marcos Antonio Vaz Salles, Alan J. Demers, Johannes Gehrke
SIGMOD Conference4
2011 Fast checkpoint recovery algorithms for frequently consistent applications
abstract
Advances in hardware have enabled many long-running applications to execute entirely in main memory. As a result, these applications have increasingly turned to database techniques to ensure durability in the event of a crash. However, many of these applications, such as massively multiplayer online games and mainmemory OLTP systems, must sustain extremely high update rates – often hundreds of thousands of updates per second. Providing durability for these applications without introducing excessive overhead or latency spikes remains a challenge for application developers. In this paper, we take advantage of frequent points of consistency in many of these applications to develop novel checkpoint recovery algorithms that trade additional space in main memory for significantly lower overhead and latency. Compared to previous work, our new algorithms do not require any locking or bulk copies of the application state. Our experimental evaluation shows that one of our new algorithms attains nearly constant latency and reduces overhead by more than an order of magnitude for low to medium update rates. Additionally, in a heavily loaded main-memory transaction processing system, it still reduces overhead by more than a factor of two.
Tuan Cao, Marcos Antonio Vaz Salles, Ben Sowell, Yao Yue, Alan J. Demers, Johannes Gehrke, Walker M. White
SIGMOD Conference5
2010 Behavioral Simulations in MapReduce
abstract
In many scientific domains, researchers are turning to large-scale behavioral simulations to better understand real-world phenomena. While there has been a great deal of work on simulation tools from the high-performance computing community, behavioral simulations remain challenging to program and automatically scale in parallel environments. In this paper we present BRACE (Big Red Agent-based Computation Engine), which extends the MapReduce framework to process these simulations efficiently across a cluster. We can leverage spatial locality to treat behavioral simulations as iterated spatial joins and greatly reduce the communication between nodes. In our experiments we achieve nearly linear scale-up on several realistic simulations. Though processing behavioral simulations in parallel as iterated spatial joins can be very efficient, it can be much simpler for the domain scientists to program the behavior of a single agent. Furthermore, many simulations include a considerable amount of complex computation and message passing between agents, which makes it important to optimize the performance of a single node and the communication across nodes. To address both of these challenges, BRACE includes a high-level language called BRASIL (the Big Red Agent SImulation Language). BRASIL has object-oriented features for programming simulations, but can be compiled to a dataflow representation for automatic parallelization and optimization. We show that by using various optimization techniques, we can achieve both scalability and single-node performance similar to that of a hand-coded simulation.
Guozhang Wang, Marcos Antonio Vaz Salles, Ben Sowell, Tuan Cao, Alan J. Demers, Johannes Gehrke, Walker M. White
Proc. VLDB Endow.6
2009 From Declarative Languages to Declarative Processing in Computer Games
Ben Sowell, Alan J. Demers, Johannes Gehrke, Nitin Gupta 0003, Haoyuan Li 0001, Walker M. White
CIDR2
2009 Rule-based multi-query optimization
abstract
Data stream management systems usually have to process many long-running queries that are active at the same time. Multiple queries can be evaluated more efficiently together than independently, because it is often possible to share state and computation. Motivated by this observation, various Multi-Query Optimization (MQO) techniques have been proposed. However, these approaches suffer from two limitations. First, they focus on very specialized workloads. Second, integrating MQO techniques for CQL-style stream engines and those for event pattern detection engines is even harder, as the processing models of these two types of stream engines are radically different.
Mingsheng Hong, Mirek Riedewald, Christoph Koch 0001, Johannes Gehrke, Alan J. Demers
EDBT5
2009 Scalability for Virtual Worlds
abstract
In this paper, we propose a distributed model for massive scalability in net-VEs. Our model inherits concepts from distributed databases, where the application logic and transaction processing take place at the client machine. The key feature of our model is its novel transaction model, which exploits application semantics to reduce the number of messages needed to maintain consistency. Our proposed model imposes no major restrictions on the interaction between participants located in different parts of the world, and so can be easily adapted to a wide range of net-VEs.
Nitin Gupta 0003, Alan J. Demers, Johannes Gehrke, Philipp Unterbrunner, Walker M. White
ICDE2
2009 Dynamic Approaches to In-network Aggregation
abstract
Collaboration between small-scale wireless devices depends on their ability to infer aggregate properties of all nearby nodes. The highly dynamic environment created by mobile devices introduces a silent failure mode that is disruptive to this kind of inference. We address this problem by presenting techniques for extending existing unstructured aggregation protocols to cope with failure modes introduced by mobile environments. The modified protocols allow devices with limited connectivity to maintain estimates of aggregates, despite unexpected peer departures and arrivals.
Oliver Kennedy, Christoph Koch 0001, Alan J. Demers
ICDE3
2009 Database research in computer games
abstract
This tutorial presents an overview of the data management issues faced by computer games today. While many games do not use databases directly, they still have to process large amounts of data, and could benefit from the application of database technology. Other games, such as massively multiplayer online games (MMOs), must communicate with commercial databases and have their own unique challenges. In this tutorial we will present the state-of-the-art of data management in games that we learned from our interaction with various game studios. We will show how the issues involved motivate current research, and illustrate several possibilities for future work.
Alan J. Demers, Johannes Gehrke, Christoph Koch 0001, Ben Sowell, Walker M. White
SIGMOD Conference1
2009 An Evaluation of Checkpoint Recovery for Massively Multiplayer Online Games
abstract
Massively multiplayer online games (MMOs) have emerged as an exciting new class of applications for database technology. MMOs simulate long-lived, interactive virtual worlds, which proceed by applying updates in frames or ticks, typically at 30 or 60 Hz. In order to sustain the resulting high update rates of such games, game state is kept entirely in main memory by the game servers. Nevertheless, durability in MMOs is usually achieved by a standard DBMS implementing ARIES-style recovery. This architecture limits scalability, forcing MMO developers to either invest in high-end hardware or to over-partition their virtual worlds. In this paper, we evaluate the applicability of existing checkpoint recovery techniques developed for main-memory DBMS to MMO workloads. Our thorough experimental evaluation uses a detailed simulation model fed with update traces generated synthetically and from a prototype game server. Based on our results, we recommend MMO developers to adopt a copy-on-update scheme with a double-backup disk organization to checkpoint game state. This scheme outperforms alternatives in terms of the latency introduced in the game as well the time necessary to recover after a crash.
Marcos Antonio Vaz Salles, Tuan Cao, Ben Sowell, Alan J. Demers, Johannes Gehrke, Christoph Koch 0001, Walker M. White
Proc. VLDB Endow.4
2008 SGL: a scalable language for data-driven games
abstract
We propose to demonstrate SGL, a language and system for writing computer games using data management techniques. We will demonstrate a complete game built using the system, and show how complex game behavior can be expressed in a declarative scripting language. The demo will also illustrate the workflow necessary to modify a game and include a visualization of the relational operations that are executed as the game runs.
Robert Albright, Alan J. Demers, Johannes Gehrke, Nitin Gupta 0003, Hooyeon Lee, Rick Keilty, Gregory Sadowski, Ben Sowell, Walker M. White
SIGMOD Conference2
2008 SEMMO: a scalable engine for massively multiplayer online games
abstract
We propose to demonstrate SEMMO, a consistency server for MMOs. The key features of SEMMO are its novel distributed consistency protocol and system architecture. The distributed nature of the engine allows the clients to perform all computations locally; the only computation that the central server performs is to determine the serialization order of game actions.
Nitin Gupta 0003, Alan J. Demers, Johannes Gehrke
SIGMOD Conference2
2007 Cayuga: A General Purpose Event Monitoring System
Alan J. Demers, Johannes Gehrke, Biswanath Panda, Mirek Riedewald, Walker M. White
CIDR1
2007 What is "next" in event processing?
abstract
Event processing systems have wide applications ranging from managing events from RFID readers to monitoring RSS feeds. Consequently, there exists much work on them in the literature. The prevalent use of these systems is on-line recognition of patterns that are sequences of correlated events in event streams. Query semantics and implementation efficiency are inherently determined by the underlying temporal model: how events are sequenced (what is the "next" event), and how the time stamp of an event is represented. Many competing temporal models for event systems have been proposed, with no consensus on which approach is best.
Walker M. White, Mirek Riedewald, Johannes Gehrke, Alan J. Demers
PODS4
2007 Cayuga: a high-performance event processing engine
abstract
We propose a demonstration of Cayuga, a complex event monitoring system for high speed data streams. Our demonstration will show Cayuga applied to monitoring Web feeds; the demo will illustrate the expressiveness of the Cayuga query language, the scalability of its query processing engine to high stream rates, and a visualization of the internals of the query processing engine.
Lars Brenna, Alan J. Demers, Johannes Gehrke, Mingsheng Hong, Joel Ossher, Biswanath Panda, Mirek Riedewald, Mohit Thatte, Walker M. White
SIGMOD Conference2
2007 User-centric personalized extensibility for data-driven web applications
abstract
We describe a novel programming model for building, extending, and personalizing web-based data-driven applications.
Nitin Gupta 0003, Fan Yang 0002, Alan J. Demers, Johannes Gehrke, Jayavel Shanmugasundaram
SIGMOD Conference3
2007 Massively multi-query join processing in publish/subscribe systems
abstract
DATA
Mingsheng Hong, Alan J. Demers, Johannes Gehrke, Christoph Koch 0001, Mirek Riedewald, Walker M. White
SIGMOD Conference2
2007 Scaling games to epic proportion
abstract
We introduce scalability for computer games as the next frontier for techniques from data management. A very important aspect of computer games is the artificial intelligence (AI) of non-player characters. To create interesting AI in games today, developers or players have to create complex, dynamic behavior for a very small number of characters, but neither the game engines nor the style of AI programming enables intelligent behavior that scales to a very large number of non-player characters.
Walker M. White, Alan J. Demers, Christoph Koch 0001, Johannes Gehrke, Rajmohan Rajagopalan
SIGMOD Conference2
2007 A unified platform for data driven web applications with automatic client-server partitioning
abstract
Data-driven web applications are usually structured in three tiers with different programming models at each tier. This division forces developers to manually partition application functionality across the tiers, resulting in complex logic, suboptimal partitioning, and expensive re-partitioning of applications. In this paper, we introduce a unified platform for automatic partitioning of data-driven web applications. Our approach is based on Hilda[41, 46], a high-level declarative programming language with a unified data and programming model for all the layers of the application. Based on run-time properties of the application, Hilda's run time system automatically partitions the application between the tiers to improve response time while adhering to memory and/ or processing constraints at the clients. We evaluate our methodology with traces from a real application and with TPC-W, and our results show that automatic partitioning outperforms manual partitioning without the associated development overhead.
Fan Yang 0002, Nitin Gupta 0003, Nicholas Gerner, Xin Qi 0012, Alan J. Demers, Johannes Gehrke, Jayavel Shanmugasundaram
WWW5
2007 Active and passive techniques for group size estimation in large-scale and dynamic distributed systems
Dionysios Kostoulas, Dimitrios Psaltoulis, Indranil Gupta, Kenneth P. Birman, Alan J. Demers
J. Syst. Softw.5
2007 Wave scheduling and routing in sensor networks
abstract
Sensor networks are being increasingly deployed for diverse monitoring applications. Event data are collected at various sensors and sent to selected storage nodes for further in-network processing. Since sensor nodes have strong constraints on their energy usage, this data transfer needs to be energy-efficient to maximize network lifetime. In this article, we propose a novel methodology for trading energy versus latency in sensor database systems. We propose a new protocol that carefully schedules message transmissions so as to avoid collisions at the MAC layer. Since all nodes adhere to the schedule, their radios can be off most of the time and only wake up during well-defined time intervals. We show how routing protocols can be optimized to interact symbiotically with scheduling decisions, resulting in significant energy savings at the cost of higher latency. We demonstrate the effectiveness of our approach by means of a thorough simulation study, using synthetic data as well as real-world traffic workloads.
Agathoniki Trigoni, Yong Yao 0002, Alan J. Demers, Johannes Gehrke, Rajmohan Rajaraman
ACM Trans. Sens. Networks3
2006 Towards Expressive Publish/Subscribe Systems
Alan J. Demers, Johannes Gehrke, Mingsheng Hong, Mirek Riedewald, Walker M. White
EDBT1
2006 Automatic client-server partitioning of data-driven web applications
abstract
Current application development tools provide completely different programming models for the application server (e.g., Java and J2EE) and the client web browser (e.g., JavaScript and HTML). Consequently, the application developer is forced to partition the application code between the server and client at the time of writing the application. However, the partitioning of the code between the client and server may have to be changed during the evolution of the application for performance reasons (it may be better to push more functionality to the client), for correctness reasons (data that conflicts with multiple clients cannot always be pushed to clients), and for supporting clients with different computing power (browsers on desktops vs. PDAs). Since the client and server use different programming models, moving application code from client to server (and vice versa) reduces programmer productivity and also has the potential to introduce concurrency bugs. In this demonstration, we advocate an alternative solution to this problem: we propose developing applications using a unified declarative high-level language called Hilda, and show how a Hilda compiler can automatically (and correctly) partition Hilda code between the client and the server using a real Course Management System application. We illustrate our techniques using two clients: a powerful laptop machine and a less powerful PDA.
Nicholas Gerner, Fan Yang 0002, Alan J. Demers, Johannes Gehrke, Mirek Riedewald, Jayavel Shanmugasundaram
SIGMOD Conference3
2005 Multi-query Optimization for Sensor Networks
Agathoniki Trigoni, Yong Yao 0002, Alan J. Demers, Johannes Gehrke, Rajmohan Rajaraman
DCOSS3
2005 Processing High-Speed Intelligence Feeds in Real-Time
Alan J. Demers, Johannes Gehrke, Mingsheng Hong, Mirek Riedewald
ISI1
2005 Decentralized Schemes for Size Estimation in Large and Dynamic Groups
abstract
Large-scale and dynamically changing distributed systems such as the Grid, peer-to-peer overlays, etc., need to collect several kinds of global statistics in a decentralized manner. In this paper, we tackle a specific statistic collection problem called Group Size Estimation, for estimating the number of non-faulty processes present in the global group at any given point of time. We present two new decentralized algorithms for estimation in dynamic groups, analyze the algorithms, and experimentally evaluate them using real-life traces. One scheme is active: it spreads a gossip into the overlay first, and then samples the receipt times of this gossip at different processes. The second scheme is passive: it measures the density of processes when their identifiers are hashed into a real interval. Both schemes have low latency, scalable perprocess overheads, and provide high levels of probabilistic accuracy for the estimate. They are implemented as part of a size estimation utility called PeerCounter that can be incorporated modularly into standard peer-to-peer overlays. We present experimental results from both the simulations and PeerCounter, running on a cluster of 33 Linux servers.
Dionysios Kostoulas, Dimitrios Psaltoulis, Indranil Gupta, Kenneth P. Birman, Alan J. Demers
NCA5
2005 Correctness of a gossip based membership protocol
abstract
The importance of scalability and fault-tolerance in modern distributed systems has led to considerable research in multicast protocols using gossip. In a gossip protocol, each node forwards messages to a small set of “gossip partners ” chosen at random from the entire group membership. By discarding the strong reliability guarantees of traditional protocols in favour of probabilistic guarantees, gossip protocols can deliver greater scalability and fault tolerance. In early gossip algorithms, partners were chosen uniformly at random from the entire membership, limiting scalability because of the resources required to store and maintain complete membership views at each node. Later protocols avoided this issue by storing much smaller random subsets of the membership at each node, and choosing gossip partners only from these local views. Such protocols are subtle: at least some local views must change in response to group membership changes in order to preserve connectivity and performance guarantees. While these protocols have been the subject of much simulation and analysis, formal proofs of key properties – in particular the probability of partitioning – have remained elusive. In this paper we give a new scalable gossip-based algorithm for local view maintenance, together with a proof that the expected time until a network partition is at least exponential in the square of the view size. We also develop probabilistic bounds on the in-degree (hence the load) of individual nodes, and argue that protocols lacking our reinforcement component eventually converge to star-like networks, whose connectivity depends on a small set of overloaded nodes. We also argue that the undirected connectivity graph is an expander, for which application-level gossip multi-cast protocols will converge rapidly. Our theoretical results are supported by simulations.
André Allavena, Alan J. Demers, John E. Hopcroft
PODC2
2004 The Architecture of the Cornell Knowledge Broker
Alan J. Demers, Johannes Gehrke, Mirek Riedewald
ISI1
2004 Spatial gossip and resource location protocols
abstract
The dynamic behavior of a network in which information is changing continuously over time requires robust and efficient mechanisms for keeping nodes updated about new information. Gossip protocols are mechanisms for this task in which nodes communicate with one another according to some underlying deterministic or randomized algorithm, exchanging information in each communication step. In a variety of contexts, the use of randomization to propagate information has been found to provide better reliability and scalability than more regimented deterministic approaches.In many settings, such as a cluster of distributed computing hosts, new information is generated at individual nodes, and is most "interesting" to nodes that are nearby. Thus, we propose distance-based propagation bounds as a performance measure for gossip mechanisms: a node at distance d from the origin of a new piece of information should be able to learn about this information with a delay that grows slowly with d , and is independent of the size of the network.For nodes arranged with uniform density in Euclidean space, we present natural gossip mechanisms, called spatial gossip , that satisfy such a guarantee: new information is spread to nodes at distance d , with high probability, in O (log 1 + ε d ) time steps. Such a bound combines the desirable qualitative features of uniform gossip , in which information is spread with a delay that is logarithmic in the full network size, and deterministic flooding , in which information is spread with a delay that is linear in the distance and independent of the network size. Our mechanisms and their analysis resolve a conjecture of Demers et al. [1987].We further show an application of our gossip mechanisms to a basic resource location problem , in which nodes seek to rapidly learn the location of the nearest copy of a resource in a network. This problem, which is of considerable practical importance, can be solved by a very simple protocol using Spatial Gossip, whereas we can show that no protocol built on top of uniform gossip can inform nodes of their approximately nearest resource within poly-logarithmic time. The analysis relies on an additional useful property of spatial gossip, namely that information travels from its source to sinks along short paths not visiting points of the network far from the two nodes.
David Kempe 0001, Jon M. Kleinberg, Alan J. Demers
J. ACM3
2001 Spatial gossip and resource location protocols
abstract
The dynamic behavior of a network in which information is changing continuously over time requires robust and efficient mechanisms for keeping nodes updated about new information. Gossip protocols are mechanisms for this task in which nodes communicate with one another according to some underlying deterministic or randomized algorithm, exchanging information in each communication step. In a variety of contexts, the use of randomization to propagate information has been found to provide better reliability and scalability than more regimented deterministic approaches.
David Kempe 0001, Jon M. Kleinberg, Alan J. Demers
STOC3
1999 Dealing with server corruption in weakly consistent replicated data systems
Mike Spreitzer, Marvin Theimer, Karin Petersen, Alan J. Demers, Douglas B. Terry
Wirel. Networks4
1997 Dealing with Server Corruption in Weakly Consistent, Replicated Data Systems
abstract
Providing high availability and the ability to share data despite the weak connectivity of mobile computing raises the problem of trusting replicated data servers that may be corrupt. This is because servers must be run on portable computers, and these machines are less secure and thus less trustworthy than those traditionally used to run servers. We describe the kinds of problems one must be prepared to deal with, noting that even users of secured, non-portable computers are at risk if servers trust all authorized peers. We show that high availability through data replication on portable computers need not be mutually exclusive with various levels of data security one might want. We give three solutions to this trust problem, achieving progressively higher levels of security with progressively higher costs. 1. Introduction Several existing systems, such as Ficus [1], Lotus Notes [2], and Bayou [3, 4], address the weak connectivity characteristics of mobile computing environments by a...
Mike Spreitzer, Marvin Theimer, Karin Petersen, Alan J. Demers, Douglas B. Terry
MobiCom4
1997 Flexible Update Propagation for Weakly Consistent Replication
abstract
Bayou's anti-entropy protocol for update propagation between weakly consistent storage replicas is based on pair-wise communication, the propagation of write operations, and a set of ordering and closure.constraints on the propagation of the writes.The simplicity of the design makes the protocol very flexible, thereby providing support for diverse networking environments and usage scenarios.It accommodates a variety of policies for when and where to propagate updates.It operates over diverse network topologies, including low-bandwidth links.It is incremental.It enables replica convergence, and updates can be propagated using floppy disks and similar transportable media.Moreover, the protocol handles replica creation and retirement in a light-weight manner.Each of these features is enabled by only one or two of the protocol's design choices, and can be independently incorporated in other systems.This paper presents the anti-entropy protocol in detail, describing the design decisions and resulting features.
Karin Petersen, Mike Spreitzer, Douglas B. Terry, Marvin Theimer, Alan J. Demers
SOSP5
1995 A Scheduling Model for Reduced CPU Energy
abstract
The energy usage of computer systems is becoming an important consideration, especially for battery-operated systems. Various methods for reducing energy consumption have been investigated, both at the circuit level and at the operating systems level. In this paper, we propose a simple model of job scheduling aimed at capturing some key aspects of energy minimization. In this model, each job is to be executed between its arrival time and deadline by a single processor with variable speed, under the assumption that energy usage per unit time, P, is a convex function, of the processor speed s. We give an off-line algorithm that computes, for any set of jobs, a minimum-energy schedule. We then consider some on-line algorithms and their competitive performance for the power function P(s)=s/sup p/ where p/spl ges/2. It is shown that one natural heuristic, called the Average Rate heuristic, uses at most a constant times the minimum energy required. The analysis involves bounding the largest eigenvalue in matrices of a special type.
F. Frances Yao, Alan J. Demers, Scott Shenker
FOCS2
1995 Managing Update Conflicts in Bayou, a Weakly Connected Replicated Storage System
abstract
article Free Access Share on Managing update conflicts in Bayou, a weakly connected replicated storage system Authors: D. B. Terry Computer Science Laboratory, Xerox Palo Alto Research Center, Palo Alto, California Computer Science Laboratory, Xerox Palo Alto Research Center, Palo Alto, CaliforniaView Profile , M. M. Theimer Computer Science Laboratory, Xerox Palo Alto Research Center, Palo Alto, California Computer Science Laboratory, Xerox Palo Alto Research Center, Palo Alto, CaliforniaView Profile , Karin Petersen Computer Science Laboratory, Xerox Palo Alto Research Center, Palo Alto, California Computer Science Laboratory, Xerox Palo Alto Research Center, Palo Alto, CaliforniaView Profile , A. J. Demers Computer Science Laboratory, Xerox Palo Alto Research Center, Palo Alto, California Computer Science Laboratory, Xerox Palo Alto Research Center, Palo Alto, CaliforniaView Profile , M. J. Spreitzer Computer Science Laboratory, Xerox Palo Alto Research Center, Palo Alto, California Computer Science Laboratory, Xerox Palo Alto Research Center, Palo Alto, CaliforniaView Profile , C. H. Hauser Computer Science Laboratory, Xerox Palo Alto Research Center, Palo Alto, California Computer Science Laboratory, Xerox Palo Alto Research Center, Palo Alto, CaliforniaView Profile Authors Info & Claims ACM SIGOPS Operating Systems ReviewVolume 29Issue 5Dec. 3, 1995 pp 172–182https://doi.org/10.1145/224057.224070Online:03 December 1995Publication History 630citation5,089DownloadsMetricsTotal Citations630Total Downloads5,089Last 12 Months311Last 6 weeks48 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
Douglas B. Terry, Marvin Theimer, Karin Petersen, Alan J. Demers, Mike Spreitzer, Carl H. Hauser
SOSP4
1994 Scheduling for Reduced CPU Energy
Mark D. Weiser, Brent B. Welch, Alan J. Demers, Scott Shenker
OSDI3
1994 Research Issues in Ubiquitous Computing
abstract
of an invited talk presented at the 12tb
Alan J. Demers
PODC1
1994 MACAW: A Media Access Protocol for Wireless LAN's
abstract
In recent years, a wide variety of mobile computing devices has emerged, including portables, palmtops, and personal digital assistants. Providing adequate network connectivity for these devices will require a new generation of wireless LAN technology. In this paper we study media access protocols for a single channel wireless LAN being developed at Xerox Corporation's Palo Alto Research Center. We start with the MACA media access protocol first proposed by Karn [9] and later refined by Biba [3] which uses an RTS-CTS-DATA packet exchange and binary exponential back-off. Using packet-level simulations, we examine various performance and design issues in such protocols. Our analysis leads to a new protocol, MACAW, which uses an RTS-CTS-DS-DATA-ACK message exchange and includes a significantly different backoff algorithm.
Vaduvur Bharghavan, Alan J. Demers, Scott Shenker, Lixia Zhang 0001
SIGCOMM2
1991 Mostly Parallel Garbage Collection
abstract
We present a method for adapting garbage collectors designed to run sequentially with the client, so that they may run concurrently with it.We rely on virtual memory hardware to provide information about pages that have been updated or "dirtied" during a given period of time.This method has been used to construct a mostly parallel trace-and-sweep collector that exhibits very short pause times.Performance measurements are given.
Hans-Juergen Boehm, Alan J. Demers, Scott Shenker
PLDI2
1990 Combining Generational and Conservative Garbage Collection: Framework and Implementations
abstract
Two key ideas in garbage collection are generational collection and conservative pointer-finding. Generational collection and conservative pointer-finding are hard to use together, because generational collection is usually expressed in terms of copying objects, while conservative pointer-finding precludes copying. We present a new framework for defining garbage collectors. When applied to generational collection, it generalizes the notion of younger/older to a partial order. It can describe traditional generational and conservative techniques, and lends itself to combining different techniques in novel ways. We study in particular two new garbage collectors inspired by this framework. Both these collectors use conservative pointer-finding. The first one is based on a rewrite of an existing trace-and-sweep collector to use one level of generation. The second one has a single parameter, which controls how objects are partitioned into generations: the value of this parameter can be changed dynamically with no overhead. We have implemented both collectors and present measurements of their performance in practice.
Alan J. Demers, Mark D. Weiser, Barry Hayes, Hans-Juergen Boehm, Daniel G. Bobrow, Scott Shenker
POPL1
1989 Experiences Creating a Portable Cedar
abstract
Cedar is the name for both a language and an environment in use in the Computer Science Laboratory at Xerox PARC since 1980. The Cedar language is a superset of Mesa, the major additions being garbage collection and runtime types. Neither the language nor the environment was originally intended to be portable, and for many years ran only on D-machines at PARC and a few other locations in Xerox. We recently re-implemented the language to make it portable across many different architectures. Our strategy was, first, to use machine-dependent C code as an intermediate language, second, to create a language-independent layer known as the Portable Common Runtime, and third, to write a relatively large amount of Cedar-specific runtime code in a subset of Cedar itself. By treating C as an intermediate code we are able to achieve reasonably fast compilation, very good eventual machine code, and all with relatively small programmer effort. Because Cedar is a much richer language than C, there were numerous issues to resolve in performing an efficient translation and in providing reasonable debugging. These strategies will be of use to many other porters of high-level languages who may wish to use C as an assembler language without giving up either ease of debugging or high performance. We present a brief description of the Cedar language, our portability strategy for the compiler and runtime, our manner of making connections to other languages and the Unix* operating system, and some measures of the performance of our “Portable Cedar”.
Russell R. Atkinson, Alan J. Demers, Carl H. Hauser, Peter Kessler, Mark D. Weiser
PLDI2
1989 Analysis and Simulation of a Fair Queueing Algorithm
abstract
We discuss gateway queueing algorithms and their role in controlling congestion in datagram networks. A fair queueing algorithm, based on an earlier suggestion by Nagle, is proposed. Analysis and simulations are used to compare this algorithm to other congestion control schemes. We find that fair queueing provides several important advantages over the usual first-come-first-serve queueing algorithm: fair allocation of bandwidth, lower delay for sources using less than their full share of bandwidth, and protection from ill-behaved sources.
Alan J. Demers, Srinivasan Keshav, Scott Shenker
SIGCOMM1
1989 The Portable Common Runtime Approach to Interoperability
abstract
Operating system abstractions do not always reach high enough for direct use by a language or applications designer. The gap is filled by language-specific runtime environments, which become more complex for richer languages (CommonLisp needs more than C+ +, which needs more than C). But language-specific environments inhibit integrated multi-lingual programming, and also make porting hard (for instance, because of operating system dependencies). To help solve these problems, we have built the Portable Common Runtime (PCR), a language-independent and operating-system-independent base for modern languages. PCR offers four interrelated facilities: storage management (including universal garbage collection), symbol binding (including static and dynamic linking and loading), threads (lightweight processes), and low-level I/O (including network sockets). PCR is “common” because these facilities simultaneously support programs in several languages. PCR supports C. Cedar, Scheme, and CommonLisp intercalling and runs pre-existing C and CommonLisp (Kyoto) binaries. PCR is “portable” because it uses only a small set of operating system features. The PCR source code is available for use by other researchers and developers.
Mark D. Weiser, Alan J. Demers, Carl H. Hauser
SOSP2
1988 The Topology of Program Termination
abstract
Denotational semantics is founded on a theory of higher order computation called domain theory, which formalizes a computation as a potentially infinite enumeration of finite elements that approximate the answer with progressively higher accuracy. Although existing formulations of domain theory provide an elegant framework for defining the abstract meaning of programs, these definitions are not effective because they fail to specify when computations terminate. A formulation of domain theory is presented that gives a natural topological characterization of termination: the evaluation of a program expression should terminate if and only if the expression denotes an element that is finite and maximal.>
Robert Cartwright, Alan J. Demers
LICS2
1987 Epidemic Algorithms for Replicated Database Maintenance
abstract
Whru a dilt~lhSC is replicated at, many sites2 maintaining mutual consistrnry among t,he sites iu the fac:e of updat,es is a signitirant problem.This paper descrikrs several randomized algorit,hms for dist,rihut.ingupdates and driving t,he replicas toward consist,c>nc,y.The algorit Inns are very simple and require few guarant,ees from the underlying conllllunicat.iollsystem, yc+ they rnsutc t.hat.the off(~c~t, of ('very update is evcnt,uwlly rf+irt-ted in a11 rq1ica.s.The cost, and parformancc of t,hr algorithms arc tuned I>? c%oosing appropriat,c dist,rilMions in t,hc randoinizat,ioii step.TIN> idgoritlmls ilr(' c*los~*ly analogoIls t,o epidemics, and t,he epi-dcWliolog)-litc\ratiirc, ilitlh iii Illld~~rsti4lldill~ tlicir bc*liavior.One of tlW i$,oritlims 11&S brc>n implrmcWrd in the Clraringhousr sprv(brs of thr Xerox C'orporat~c~ Iiitcrnc4, solviiig long-standing prol>lf~lns of high traffic and tlatirl>ilsr inconsistcllcp.
Alan J. Demers, Daniel H. Greene, Carl H. Hauser, Wes Irish, John Larson, Scott Shenker, Howard E. Sturgis, Daniel C. Swinehart, Douglas B. Terry
PODC1
1987 Computation of Aliases and Support Sets
abstract
We provide a scheme for determining which global variables are involved when an expression is evaluated in a language with higher order constructs and imperative features. The heart of our scheme is a mechanism for computing the support of an expression, i.e. the set of global variables involved in its evaluation. This computation requires knowledge of all the aliases of an expression. The inference schemes are presented as abstract semantic interpretations. We prove the soundness of our estimates by establishing a correspondence between the abstract semantics and the standard semantics of the programming language.
Anne Neirynck, Prakash Panangaden, Alan J. Demers
POPL3
1987 An Efficient General Iterative Algorithm for Dataflow Analysis
Susan Horwitz, Alan J. Demers, Tim Teitelbaum
Acta Informatica2
1987 Sublinear-Space Evaluation Algorithms for Attribute Grammars
abstract
A major drawback of attribute-grammar-based systems is that they are profligate consumers of storage. This paper concerns new storage-management techniques that reduce the number of attribute values retained at any stage of attribute evaluation; it presents an algorithm for evaluating an n -attribute tree that never retains more than O (log n ) attribute values. This method is optimal, although it may require nonlinear time. A second algorithm, which never retains more than O (√ n ) attribute values, is also presented, both as an introduction to the O (log n ) method and because it works in linear time.
Thomas W. Reps, Alan J. Demers
ACM Trans. Program. Lang. Syst.2
1986 A Model and Temporal Proof System for Networks of Processes
Alan J. Demers, David Gries, Susan S. Owicki
Distributed Comput.2
1986 Safety Without Stuttering
Bowen Alpern, Alan J. Demers, Fred B. Schneider
Inf. Process. Lett.2
1985 Data Types Are Values
abstract
An important goal of programming language research is to isolate the fundamenal concepts of languages, those basic ideas that allow us to understand the relationships among various language features. This paper examines one of these underlying notions, that of data type , with particular attention to the treatment of generic or polymorphic procedures and static type-checking.
James E. Donahue, Alan J. Demers
ACM Trans. Program. Lang. Syst.2
1983 Making Variables Abstract: An Equational Theory for Russell
abstract
One of the fundamental notions of programming, and thus of programming languages, is the variable. Recently, the variable has come under attack. The proponents of "functional programming" have argued that variables are at the root of all our problems in programming. They claim that we must rid our languages of all manifestations of the "vonNeumann bottleneck" and learn to live in the changeless world of functional combinators.While we may not, believe all the claims of the functional programming advocates, there is evidence that the treatment of variables in most programming languages leaves much to be desired. In this paper we discuss how to make variables "abstract", i.e., how to introduce the notion of variable in to a language so that variables have reasonable mathematical properties. This paper includes:--- a discussion of language design principles that allow a more mathematical treatment of variables in programming language, and--- a description of an equational logic for the programming language Russell [Boehm80]. Although this logic follows much of the development of abstract data types (cf. [Guttag78]), it is novel in its treatment of a language in which expressions not only produce values but also can have effects. We discuss the over all structure of the logic and present in detail the rules particularly relevant to the semantics of variables. A complete presentation of the logic appears in [Demers82], and the rule numbers in this paper agree with the numbers used there.In the next section, we discuss the underlying language principles needed to make an equational specification of variables possible. In the sections that follow, we present a logic that does so for Russell.
Alan J. Demers, James E. Donahue
POPL1
1983 Incremental Context-Dependent Analysis for Language-Based Editors
abstract
Knowledge of a programming language's grammar allows language-based editors to enforce syntactic correctness at all times during development by restricting editing operations to legitimate modifications ot ~ the program's context-free derivation tree; however, not all language constraints can be enforced in this way because not all features can be described by the context-free formalism.Attribute grammars permit context-dependent language features to be expressed in a modular, declarative fashion and thus are a good basis for specifying language-based editors.Such editors represent programs as attributed trees, Which are modified by operations such as subtree pruning and grafting.Incremental analysis is performed by updating attribute values after every modification.This paper discusses how updating can be carried out and presents several algorithms for the task, including one that is asymptotically optimal in time.
Thomas W. Reps, Tim Teitelbaum, Alan J. Demers
ACM Trans. Program. Lang. Syst.3
1982 On Some Decidable Properties of Finite State Translations
Alan J. Demers, C. Keleman, Bernd Reusch
Acta Informatica1
1981 Incremental Evaluation for Attribute Grammars with Application to Syntax-Directed Editors
abstract
A syntax-directed editor is a tool for structured program development. Such an editor can enforce syntactic correctness incrementally by restricting editing operations to legitimate modifications of the program's context-free derivation tree. However, not all language features can be described by the context-free formalism. To build editors that enforce non-context-free correctness, a more powerful specification technique is needed. In this paper we discuss the advantages of attribute grammars as a specification technique for a syntax-directed editing system. We also present an efficient algorithm for incrementally evaluating attributes as a program tree is derived.
Alan J. Demers, Thomas W. Reps, Tim Teitelbaum
POPL1
1980 Data Types, Parameters, and Type Checking
abstract
In statically typed programming languages, each variable and expression in a program is assigned a unique "type" and the program is checked to ensure that the arguments in each application are "type-compatible" with the corresponding parameters. The rules by which this "type-checking" is performed must be carefully considered for modern languages that allow the programmer to define his own data types and allow parameterized types or types as parameters. (Such languages include Alphard [Wulf78], CLU [Liskov77], Euclid [Lampson77] and Russell [Demers79].) These features increase the expressive power of the languages, but also increase the difficulty of type-checking them.In this paper, we describe a treatment of type-checking that makes it possible to do completely static checking with a general parameterization mechanism allowing parameterized types, types as parameters, and even a disciplined form of self-application. Our method defines a calculus of "signatures," where signatures are similar to the "program types" of [Reynolds78]. Each identifier and expression is given a signature, and applications are type-correct when argument and parameter signatures are equivalent under a simple set of signature transformation rules. Below we present the signature calculus of Russell; we also present a semantic justification of this calculus and specify the language constraints necessary for us to justify our purely static approach to type-checking.
Alan J. Demers, James E. Donahue
POPL1
1980 "Type-Completeness" as a Language Design Principle
abstract
In his recent Turing Lecture, John Backus delivered a trenchant argument for the proposition that "programming languages are in trouble." Backus claims this to be inevitable: the development of Algol-like languages must lead to this sorry state because it begins from faulty assumptions.A less radical interpretation of the difficulties of language design is that we still do not understand the fundamental principles that should guide our design efforts; the machines we use may limit our results, but our ignorance has far greater effect. As evidence to support this position, we can cite the difficulties of building successors to Algol 60 and Pascal. Both languages have been acclaimed as well-designed, but it has proved extremely difficult to capture just what they "got right." Thus, Hoare has claimed that "Algol 60 was not only a great improvement on its predecessors, but also on nearly all of its successors." [73a] The recent Ada design suggests that the same fate may befall Pascal.In this paper, we expand on an idea of Landin [66] to develop an important principle of programming languages: type-completeness. We argue that application of this principle is an effective tool in understanding problems of programming language design. In particular, type-completeness1. allows us to point out many of the flaws and inconsistencies in existing languages (so we can know what mistakes not to repeat) and2. provides a framework for the design of languages (or language families) that have wide variation in their changeable parts.Below, we present the principle of type-completeness and its ramifications for language design. We then discuss some common examples of incompleteness found in existing Algol-like languages. And we end by presenting the type structure of the type-complete programming language Russell, which has been designed by the authors. As we show, the flexibility provided in Russell by the combination of a small, rich type structure and type-completeness belie Backus's assertion of inherent weakness of vonNeumann languages.
Alan J. Demers, James E. Donahue
POPL1
1980 An Algorithm for Testing Lossless Join Property in Relational Databases
Lishing Liu, Alan J. Demers
Inf. Process. Lett.2
1978 Data Types as Values: Polymorphism, Type-Checking, Encapsulation
abstract
This paper describes a novel approach to the treatment of data types in programming languages, which allows a simple interpretation of "polymorphic" or "generic" procedures, makes a simple set of type-checking rules semantically justifiable and provides a straightforward treatment of encapsulation.
Alan J. Demers, James E. Donahue, Glenn Skinner
POPL1
1977 Generalized Left Corner Parsing
abstract
Brosgol [Br] formalizes the notion that parsing methods can be classified by the positions at which production rules are recognized. In an LL parser, each rule is recognized at the left end, before the rule's yield has been read; in an LR parser, a rule is recognized at its right end, after its yield has been read; and in an LC parser a rule is recognized after the yield of its "left corner" has been read. We generalize on these techniques by allowing the user to specify arbitrarily for each production rule the position at which that rule is to be recognized. The resulting GLC or generalized left corner technique includes the LR, LL, LC, and ELC methods as special cases. It also allows for less conventional parsing strategies, such as grammar splitting [K] with certain component grammars parsed top-down and the others parsed bottom-up, as suggested in [AU].This paper is organized as follows. In Section 2 we give some necessary background and notation. Section 3 defines GLC parsing. A canonical GLC(k) parsing technique can be defined analogous to the LR(k) technique. However, the resulting parsers tend to be unacceptably large. We therefore restrict our attention to the SGLC(k), or simple generalized left corner parsing technique, which is analogous to the SLR(k) technique of DeRemer [D]. We give an algorithm for the construction of SGLC(k) parsing tables and prove that the resulting parser is correct.In Section 4 we develop some potentially useful properties of SGLC(1) parsers. We show that there is a well-defined leftmost position at which each production rule can be recognized, and that a minimal left corner parser can be constructed which recognizes each rule as early as possible. We derive a simple expression relating the size (number of states) of an SGLC(1) parser to the size of the corresponding SLR(1) parser. If G is not left-recursive, then the minimal left-corner parser is the smallest parser for G in this class, while the SLR(1) parser is the largest.In Section 5 we extend the techniques 5 of [HSU] to give an O(n2) algorithm to test whether a grammar with no left recursion is SGLC(1), and if so to compute its minimal left corners.
Alan J. Demers
POPL1
1976 Elimination of Single Productions and Merging Nonterminal Symbols of LR(1) Grammars
Alan J. Demers
Comput. Lang.1
1974 Worst-Case Performance Bounds for Simple One-Dimensional Packing Algorithms
abstract
The following abstract problem models several practical problems in computer science and operations research: given a list L of real numbers between 0 and l, place the elements of L into a minimum number $L^ * $ of “bins” so that no bin contains numbers whose sum exceeds l. Motivated by the likelihood that an excessive amount of computation will be required by any algorithm which actually determines an optimal placement, we examine the performance of a number of simple algorithms which obtain “good” placements. The first-fit algorithm places each number, in succession, into the first bin in which it fits. The best-fit algorithm places each number, in succession, into the most nearly full bin in which it fits. We show that neither the first-fit nor the best-fit algorithm will ever use more than $\frac{17}{10}L^ * + 2$ bins. Furthermore, we outline a proof that, if L is in decreasing order, then neither algorithm will use more than $\frac{11}{9} L^ * + 4$ bins. Examples are given to show that both upper bounds are essentially the best possible. Similar results are obtained when the list L contains no numbers larger than $\alpha < 1$.
David S. Johnson 0001, Alan J. Demers, Jeffrey D. Ullman, M. R. Garey, Ronald L. Graham
SIAM J. Comput.2