Sign In

Communications of the ACM

Latest Research



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...

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.

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.

From Communications of the ACM

Technical Perspective: Taming the Name Game

In "Learning to Name Objects," the authors offer a method to determine a basic-level category name for an object in an image.

Learning to Name Objects
From Communications of the ACM

Learning to Name Objects

This paper looks at the problem of predicting category labels that mimic how human observers would name objects.

From Communications of the ACM

Technical Perspective: STACKing Up Undefined Behaviors

In "A Differential Approach to Undefined Behavior Detection," Wang et al. hypothesize that any time a compiler is able to delete code by using reasoning based on...

A Differential Approach to Undefined Behavior Detection
From Communications of the ACM

A Differential Approach to Undefined Behavior Detection

This paper studies undefined behavior arising in systems programming languages such as C/C++. We introduce a new static checker called STACK that precisely identifies...

From Communications of the ACM

Technical Perspective: Program Synthesis Using Stochastic Techniques

The authors of "Stochastic Program Optimization" have developed a stochastic search technique and applied it to program optimization.

Stochastic Program Optimization
From Communications of the ACM

Stochastic Program Optimization

By encoding constraints of transformation correctness as terms in a cost function, and using a Markov Chain Monte Carlo sampler to explore the space of all possible...

From Communications of the ACM

Technical Perspective: Catching Lies (and Mistakes) in Offloaded Computation

The system described in "Pinocchio: Nearly Practical Verifiable Computation" refines an important theoretical advance by Gennaro et al. Together, these two works represent...

Pinocchio
From Communications of the ACM

Pinocchio: Nearly Practical Verifiable Computation

To instill greater confidence in computations outsourced to the cloud, we introduce Pinocchio, a built system for efficiently verifying general computations while...

From Communications of the ACM

Technical Perspective: Treating Networks Like Programs

"Software Dataplane Verification" takes existing static checking of networks to a new level by checking the real code in the forwarding path of a Click router using...

Software Dataplane Verification
From Communications of the ACM

Software Dataplane Verification

We present the result of working iteratively on two tasks: designing a domain-specific verification tool for packet-processing software, while trying to identify...

From Communications of the ACM

Technical Perspective: The Simplicity of Cache Efficient Functional Algorithms

In "Cache Efficient Functional Algorithms," Blelloch and Harper suggest we analyze the costs of functional algorithms by assuming objects are allocated sequentially...

Cache Efficient Functional Algorithms
From Communications of the ACM

Cache Efficient Functional Algorithms

We present a cost model for analyzing the memory efficiency of algorithms expressed in a simple functional language.

From Communications of the ACM

Technical Perspective: Programming Multicore Computers

"Can Traditional Programming Bridge the Ninja Performance Gap for Parallel Computing Applications" advocates an appealing division of labor between a developer...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account
Read CACM in a free mobile app!
Access the latest issue, plus archived issues and more
ACM Logo
  • ACM CACM apps available for iPad, iPhone and iPod Touch, and Android platforms
  • ACM Digital Library apps available for iOS, Android, and Windows devices
  • Download an app and sign in to it with your ACM Web Account
Find the app for your mobile device
ACM DL Logo