acm-header
Sign In

Communications of the ACM

Latest Research



From Communications of the ACM

Technical Perspective: Learning To Do Program Verification

When you decide to use a piece of software, how do you know it will do what you need it to do? Will it be safe to run? Will it interfere...

Asserting and Checking Determinism For Multithreaded Programs
From Communications of the ACM

Asserting and Checking Determinism For Multithreaded Programs

The trend towards processors with more and more parallel cores is increasing the need for software that can take advantage of...

From Communications of the ACM

Technical Perspective: Building Confidence in Multicore Software

Surprises may be fun in real life, but not so in software. One approach to avoiding surprises in software is to establish its...

Automatic Program Repair With Evolutionary Computation
From Communications of the ACM

Automatic Program Repair With Evolutionary Computation

There are many methods for detecting and mitigating software errors but few generic methods for automatically repairing errors once they are discovered. Recent...

From Communications of the ACM

Technical Perspective: Automated Patching Techniques: The Fix Is In

Finding bugs is technically demanding and yet economically vital. How much more difficult yet valuable would it be to...

Censored Exploration and the Dark Pool Problem
From Communications of the ACM

Censored Exploration and the Dark Pool Problem

The success and proliferation of dark pool stock exchanges have created challenging and interesting problems in algorithmic trading—in particular, the problem of...

From Communications of the ACM

Technical Perspective: Learning to Act in Uncertain Environments

The problem of decision making in an uncertain environment arises in many diverse contexts. The key issue in effectively solving problems like this is known as...

Faster Dimension Reduction
From Communications of the ACM

Faster Dimension Reduction

Data represented geometrically in high-dimensional vector spaces can be found in many applications. The need to manipulate such data in huge corpora and to support...

From Communications of the ACM

Technical Perspective: Strange Effects in High Dimension

In studying the genetic basis of a disease, it is now common to select a set of relevant genes G, and to measure how strongly...

Native Client: A Sandbox For Portable, -Untrusted X86 Native Code
From Communications of the ACM

Native Client: A Sandbox For Portable, -Untrusted X86 Native Code

Native Client is a sandbox for untrusted x86 native code. It aims to give browser-based applications the computational performance of native applications without...

From Communications of the ACM

Technical Perspective: Native Client: A Clever Alternative

Google's Native Client is an intriguing new system that allows untrusted x86 binaries to run safely on bare metal.

Designing Plush Toys With a Computer
From Communications of the ACM

Designing Plush Toys With a Computer

We introduce Plushie, an interactive system that allows nonprofessional users to design their own original plush toys. We successfully demonstrated that nonprofessional...

From Communications of the ACM

Technical Perspective: Design Tools For the Rest of Us

There are many who believe we are on the verge of the biggest change in the way products are made since the Industrial...

Optimistic Parallelism Requires Abstractions
From Communications of the ACM

Optimistic Parallelism Requires Abstractions

Writing software for multicore processors is greatly simplified if we could automatically parallelize sequential programs. Although auto-parallelization has been...

From Communications of the ACM

Technical Perspective: Abstraction For Parallelism

Looking for some new insight into an old problem? The  familiar problem of writing parallel applications and a...

Does Distributed Development Affect Software Quality?
From Communications of the ACM

Does Distributed Development Affect Software Quality?: An Empirical Case Study of Windows Vista

Existing literature on distributed development in software engineering and other fields discusses various challenges,...

From Communications of the ACM

Technical Perspective: Maintaining Quality in the Face of Distributed Development

It was a problem that should not have taken three weeks to solve. The documentation claimed that if a function was called...

From Communications of the ACM

Formal Verification of a Realistic Compiler

This paper reports on the development and formal verification of CompCert, a compiler from Clight (a large subset of the C programming language) to PowerPC assembly...

From Communications of the ACM

Technical Perspective: A Compiler's Story

In the early 1970s, pioneers like Floyd, Dijkstra, and Hoare argued that programs should be formally specified and proven...

Apprenticeship Learning For Helicopter Control
From Communications of the ACM

Apprenticeship Learning For Helicopter Control

Autonomous helicopter flight is widely regarded to be a highly challenging control problem. As helicopters are highly unstable and exhibit complicated dynamical...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account