07/2011
vol. 54 no. 07
Practice
Contributed Articles
Review Articles
58 Algorithmic Composition:
Computational Thinking in Music
The composer still composes but
also gets to take a programming-enabled journey of musical discovery.
By Michael Edwards
88 Cellular Telephony
and the Question of Privacy
A private overlay may ease concerns
over surveillance tools supported
by cellular networks.
By Stephen B. Wicker
68 A Decade of Software Model
Checking with SLAM
SLAM is a program-analysis engine
used to check if clients of an API
follow the API’s stateful usage rules.
By Thomas Ball, Vladimir Levin,
and Sriram K. Rajamani
44
38 Passing a Language Through
the Eye of a Needle
How the embeddability of Lua
impacted its design.
By Roberto Ierusalimschy,
Luiz Henrique de Figueiredo,
and Waldemar Celes
77 Searching for Jim Gray:
A Technical Overview
The volunteer search for Jim Gray,
lost at sea in 2007, highlights the
challenges of computer-aided
emergency response.
By Joseph M. Hellerstein and
David L. Tennenhouse (on behalf
of a large team of volunteers)
Workload Management for Power
Efficiency in Virtualized Data Centers
Power-aware dynamic
application placement can
address underutilization
of servers as well as the rising
energy costs in a data center.
By Gargi Dasgupta, Amit Sharma,
Akshat Verma, Anindya Neogi,
and Ravi Kothari
Research Highlights
100 Technical Perspective
FAWN: A Fast Array of Wimpy Nodes
By Luiz André Barroso
44 DSL for the Uninitiated
Domain-specific languages bridge
the semantic gap in programming.
By Debasish Ghosh
51 Microsoft’s Protocol Documentation
Program: Interoperability
Testing at Scale
A discussion with Nico Kicillof,
Wolfgang Grieskamp,
and Bob Binder.
ACM Case Study
Articles’ development led by
queue.acm.org
The Case for RAMCloud
With scalable high-performance
storage entirely in DRAM,
RAMCloud will enable a new breed
of data-intensive applications.
By John Ousterhout,
Parag Agrawal, David Erickson,
Christos Kozyrakis, Jacob Leverich,
David Mazières, Subhasish Mitra,
Aravind Narayanan, Diego Ongaro,
Guru Parulkar, Mendel Rosenblum,
Stephen M. Rumble, Eric Stratmann,
and Ryan Stutsman
101 FAWN: A Fast Array of Wimpy Nodes
By David G. Andersen, Jason Franklin,
Michael Kaminsky, Amar Phanishayee,
Lawrence Tan, and Vijay Vasudevan
110 Technical Perspective
Is Scale Your Enemy,
Or Is Scale Your Friend?
By John Ousterhout
IllustratIon By hank osuna
About the Cover:
an algorithmic approach
to music composition
has been in evidence in
Western classical music
for at least 1,000 years,
says Michael edwards,
who chronicles the history
of algorithmic composition
before and after the
dawn of the digital
computer beginning
on p. 58. Illustration
by studio tonne.
111 Debugging in the (Very) Large:
Ten Years of Implementation
and Experience
By Kinshuman Kinshumann,
Kirk Glerum, Steve Greenberg,
Gabriel Aul, Vince Orgovan,
Greg Nichols, David Grant,
Gretchen Loihle, and Galen Hunt