acm-header
Sign In

Communications of the ACM

Latest Research



From Communications of the ACM

Technical Perspective: The Chemistry of Software-Defined Batteries

A time-tested principle in computer systems design is to use an interface to separate an abstraction from its implementation. "Software-Defined Batteries" represents...

Software-Defined Batteries
From Communications of the ACM

Software-Defined Batteries

In this paper, we present a new hardware-software system, called Software Defined Battery, which allows system designers to integrate batteries of different chemistries...

From Communications of the ACM

Technical Perspective: FPGA Compute Acceleration Is First About Energy Efficiency

"A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services" presents a research deployment of Field Programmable Gate Arrays (FPGAs) in a Microsoft...

A Reconfigurable Fabric For Accelerating Large-Scale Datacenter Services
From Communications of the ACM

A Reconfigurable Fabric For Accelerating Large-Scale Datacenter Services

We describe a medium-scale deployment of a composable, reconfigurable hardware fabric on a bed of 1,632 servers, and measure its effectiveness in accelerating the...

From Communications of the ACM

Technical Perspective: The Power of Parallelizing Computations

"Efficient Parallelization Using Rank Convergence in Dynamic Programming Algorithms" shows how some instances of dynamic programming can be effectively parallelized...

Efficient Parallelization Using Rank Convergence in Dynamic Programming Algorithms
From Communications of the ACM

Efficient Parallelization Using Rank Convergence in Dynamic Programming Algorithms

This paper proposes an efficient parallel algorithm for an important class of dynamic programming problems that includes Viterbi, Needleman-Wunsch, Smith-Waterman...

From Communications of the ACM

Technical Perspective: Naiad

"Incremental, Iterative Data Processing with Timely Dataflow" describes Naiad, which combines three classes of dataflow systems, supporting high-throughput batch...

Incremental, Iterative Data Processing with Timely Dataflow
From Communications of the ACM

Incremental, Iterative Data Processing with Timely Dataflow

We describe the timely dataflow model for distributed computation and its implementation in the Naiad system. 

From Communications of the ACM

Technical Perspective: Toward Reliable Programming For Unreliable Hardware

"Verifying Quantitative Reliability for Programs that Execute on Unreliable Hardware" by Carbin et al. addresses challenges related to a bug, how likely it is to...

Verifying Quantitative Reliability For Programs that Execute on Unreliable Hardware
From Communications of the ACM

Verifying Quantitative Reliability For Programs that Execute on Unreliable Hardware

We present Rely, a programming language that enables developers to reason about the quantitative reliability of an application — namely, the probability that it...

From Communications of the ACM

Technical Perspective: Why Didn't I Think of That?

Until now, the database in a Web application has been treated as a global variable, accessible to all. In "Ur/Web: A Simple Model for Programming the Web," Adam...

Ur/Web
From Communications of the ACM

Ur/Web: A Simple Model For Programming the Web

This paper presents Ur/Web, a domain-specific, statically typed functional programming language that reduces the nest of Web standards for modern Web applications...

From Communications of the ACM

Technical Perspective: Computing with the Crowd

What kinds of problems can be solved with combined human and machine computation? "AutoMan: A Platform for Integrating Human-Based and Digital Computation," by...

Automan
From Communications of the ACM

Automan: A Platform For Integrating Human-Based and Digital Computation

We introduce AutoMan, the first fully automatic crowdprogramming system.

From Communications of the ACM

Technical Perspective: Veritesting Tackles Path-Explosion Problem

 "Enhancing Symbolic Execution with Veritesting" by Avgerinos et al. proposes an effective technique called veritesting that addresses the scalability limitations...

Enhancing Symbolic Execution with Veritesting
From Communications of the ACM

Enhancing Symbolic Execution with Veritesting

In this article, we present a new technique for generating formulas called veritesting that alternates between static symbolic execution (SSE) and dynamic symbolic...

From Communications of the ACM

Technical Perspective: A Breakthrough in Software Obfuscation

In "Hiding Secrets in Software," Garg et al. construct a "one-way compiler" of the type envisioned by Diffie and Hellman.

Hiding Secrets in Software
From Communications of the ACM

Hiding Secrets in Software: A Cryptographic Approach to Program Obfuscation

Can we hide secrets in software? Can we make programs unintelligible while preserving their functionality? Why would we even want to do this? In this article, we...

From Communications of the ACM

Technical Perspective: Software Is Natural

"On the Naturalness of Software" by Hindle et al. takes an entirely new approach to providing tools to help build software.

On the Naturalness of Software
From Communications of the ACM

On the Naturalness of Software

We begin with the conjecture that most software is natural, with all the attendant constraints and limitations — and thus, like natural language, it is also likely...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account