02/2019
VOL. 62 NO. 02
Association for Computing Machinery
Advancing Computing as a Science & Profession
I
M
A
G
E
B
Y
A
N
D
R
I
J
B
O
R
Y
S
A
S
S
O
C
I
A
T
E
S
/
S
H
U
T
T
E
R
S
T
O
C
K
Practice
36 CodeFlow:
Improving the Code Review
Process at Microsoft
A discussion with Jacek Czerwonka,
Michaela Greiler, Christian Bird,
Lucas Panjer, and Terry Coatta
45 The Importance of a Great Finish
You have to finish strong, every time.
By Kate Matsudaira
Articles’ development led by
queue.acm.org
Contributed Articles
48 Turing Lecture
A New Golden Age for
Computer Architecture
Innovations like domain-specific
hardware, enhanced security, open
instruction sets, and agile chip
development will lead the way.
By John L. Hennessy
and David A. Patterson
61 Even Central Users Do Not Always
Drive Information Diffusion
Diffusion speed and scale depend
on all kinds of information,
not just which users have
the most or fewest connections.
By Chao Gao, Zhen Su, Jiming Liu,
and Jürgen Kurths
68 SONYC: A System for Monitoring,
Analyzing, and Mitigating Urban
Noise Pollution
SONYC integrates sensors, machine
listening, data analytics, and citizen
science to address noise pollution
in New York City.
By Juan P. Bello, Claudio Silva,
Oded Nov, R. Luke Dubois,
Anish Arora, Justin Salamon,
Charles Mydlarz,
and Harish Doraiswamy
To watch Hennessy and
Patterson’s full Turing
Lecture, see https://
www.acm.org/hennessy-patterson-turing-lecture
Watch the authors discuss
this work in the exclusive
Communications video.
https://cacm.acm.org/
videos/sonyc
Review Articles
78 Blockchains from a Distributed
Computing Perspective
The roots of blockchain
technologies are deeply interwoven
in distributed computing.
By Maurice Herlihy
86 Separation Logic
Separation logic is a key development
in formal reasoning about programs,
opening up new lines of attack on
longstanding problems.
By Peter O’Hearn
Research Highlights
97 Technical Perspective
How Economic Theories Can
Help Computers Beat the Heat
By Thomas F. Wenisch
98 Distributed Strategies for
Computational Sprints
By Songchun Fan, Seyed Majid Zahedi,
and Benjamin C. Lee
107 Technical Perspective
To Do or Not to Do:
Extending SQL with Integer
Linear Programming?
By Surajit Chaudhuri
108 Scalable Computation of High-Order
Optimization Queries
By Matteo Brucato, Azza Abouzied,
and Alexandra Meliou
Watch the author discuss
his work in the exclusive
Communications video.
https://cacm.acm.org/
videos/blockchains-from-a-distributed-computing-perspective
36