Matthew A. Hammer
I am a postdoc researcher studying topics in programming languages.
I work with Michael Hicks,
Jeff Foster,
David Van Horn
and the
PLUM group at the
University of Maryland.
In Fall 2015, I will start a new job as an assistant professor in
the Department of Computer Science
at University of Colorado Boulder. Specifically, I'll join the
CU Programming Languages and
Verification group (CUPLV).
Current Research
Research on programming languages provides invaluable lenses
that connect human understanding with computational phenomena.
In particular, I'm interested in designing PL-based abstractions for
settings in which humans and computers cooperate to create and process
information.
Incremental computations consume and produce
information whose content or structure changes slowly over time
by small changes. In these settings, programs exploit cached
work from the past to respond more efficiently than naive
re-computation that is oblivious to past work.
Interactive computations are incremental computations that
reside in an open world, where future states are explored
collaboratively with an external user.
Common examples include spreadsheets, development environments and
media processing (graphics and sound).
Many prior programming-language-based approaches to incremental
computation, including self-adjusting computation, assume
a non-interactive model.
As it turns out, efficient interactive computation often requires
a demand-driven approach to caching past computation.
Secure multi-party computation consists of
computation performed by mutually-distrusting agents; together, they
cooperatively compute functions over their private data, while only
ever learning certain prearranged results and while remaining
otherwise oblivious to the computational steps necessary to
produce them.
Short biography
I have been a postdoc happily working in
the PLUM group since
fall 2012.
Formerly, I was a Ph.D. student
of Umut Acar at
the University of Chicago, as
well as a visiting student at the Max
Planck Institute for Software Systems
in Kaiserslautern,
Germany, where I lived for several years.
As a student intern, I've spent
summers at IBM Research in
Almaden and
Intel Research in Santa Clara.
I got my B.S. in 2005 from
the University of Wisconsin with a
major and honors in computer science.
Recent drafts
Publications
(
See also:
DBLP1,
DBLP2,
Google Scholar
)
-
Adapton: Composable, Demand-driven Incremental Computation
Matthew A. Hammer,
Yit Phang Khoo,
Michael Hicks
and
Jeffrey S. Foster
Programming Language Design and Implementation
(PLDI 2014).
Edinburgh, Scotland. June 2014.
OCaml Implementation:
Code repository for Adapton
Slides from PLDI talk:
adapton-slides.pdf
-
Wysteria:
A Programming Language for Generic, Mixed-Mode Multiparty
Computations
Aseem Rastogi,
Matthew A. Hammer
and
Michael Hicks
35th IEEE Symposium on Security
and Privacy (Oakland) 2014
Implementation:
Code repository for Wysteria
Dagstuhl Presentation (December 2014):
The Synergy Between Programming Languages and Cryptography (Dagstuhl Seminar 14492)
-
Implicit Self-Adjusting Computation for Purely Functional Programs
Yan Chen,
Joshua Dunfield,
Matthew A. Hammer
and
Umut A. Acar
Journal of Functional Programming 2014.
Note: This article expands and corrects our
ICFP 2011 paper.
-
Knowledge Inference for Optimizing Secure Multi-party Computation
Aseem Rastogi,
Piotr Mardziel,
Matthew A. Hammer
and
Michael Hicks
In Proceedings of the ACM SIGPLAN Workshop on Programming Languages and Analysis for Security (PLAS 2013).
Seattle, Washington USA. June 2013.
-
Self-Adjusting Machines
Matthew A. Hammer.
Ph.D dissertation.
University of Chicago. December 2012.
My dissertation
describes of the design and implementation of
CEAL,
a C-based language for self-adjusting computation.
Background:
Self-adjusting computation is a family of related
programming-language-based techniques for incremental
computation. In broad terms, self-adjusting computations consume
and produce dynamically-changing data, and are described by programs
that appear to be conventional (non-incremental).
-
Self-Adjusting Stack Machines
Matthew A. Hammer,
Georg Neis,
Yan Chen
and
Umut A. Acar
Object-Oriented Programming, Systems, Languages, and Applications
(OOPSLA 2011).
Portland, Oregon USA. October 2011.
-
Implicit Self-Adjusting Computation for Purely Functional Programs
Yan Chen,
Joshua Dunfield,
Matthew A. Hammer
and
Umut A. Acar
International Conference on Functional Programming
(ICFP'11).
Tokyo, Japan. September 2011
Note to readers: Also see our JFP 2014 article.
-
CEAL: A C-Based Language for Self-Adjusting Computation
Matthew A. Hammer,
Umut A. Acar and
Yan Chen.
Programming Language Design and Implementation
(PLDI 2009).
Dublin, Ireland. June 2009.
-
Memory Management for Self-Adjusting Computation
Matthew A. Hammer and
Umut A. Acar.
International Symposium on Memory Management
(ISMM 2008).
Tuscon, Arizona. June 2008.
-
A Proposal for Parallel Self-Adjusting Computation
(ps.gz)
Matthew Hammer,
Umut A. Acar,
Mohan Rajagopalan, Anwar Ghuloum
In Proceedings of the Workshop on Declarative Aspects of Multicore
Programming
(DAMP 2007).
Nice, France. January 2007.
-
Running Quake II on a grid
G. Deen, M. Hammer, J. Bethencourt, I. Eiron, J. Thomas, and J. H. Kaufman.
IBM Systems Journal 2006
[
Web |
PDF ].
Some press: [
Technology Review |
eWeek |
Slashdot1 |
Slashdot2
]
|