Powered by
43rd ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2016),
January 20–22, 2016,
St. Petersburg, FL, USA
Keynotes
Programming the World of Uncertain Things (Keynote)
Kathryn S. McKinley
(Microsoft Research, USA)
Computing has entered the era of uncertain data, in which hardware and software generate and reason about estimates. Applications use estimates from sensors, machine learning, big data, humans, and approximate hardware and software. Unfortunately, developers face pervasive correctness, programmability, and optimization problems due to estimates. Most programming languages unfortunately make these problems worse. We propose a new programming abstraction called Uncertain<T> embedded into languages, such as C#, C++, Java, Python, and JavaScript. Applications that consume estimates use familiar discrete operations for their estimates; overloaded conditional operators specify hypothesis tests and applications use them control false positives and negatives; and new compositional operators express domain knowledge. By carefully restricting the expressiveness, the runtime automatically implements correct statistical reasoning at conditionals, relieving developers of the need to implement or deeply understand statistics. We demonstrate substantial programmability, correctness, and efficiency benefits of this programming model for GPS sensor navigation, approximate computing, machine learning, and xBox.
@InProceedings{POPL16p1,
author = {Kathryn S. McKinley},
title = {Programming the World of Uncertain Things (Keynote)},
booktitle = {Proc.\ POPL},
publisher = {ACM},
pages = {1--2},
doi = {},
year = {2016},
}
Synthesis of Reactive Controllers for Hybrid Systems (Keynote)
Richard M. Murray
(California Institute of Technology, USA)
Decision-making logic in hybrid systems is responsible for selecting
modes of operation for the underlying (continuous) control system,
reacting to external events and failures in the system, and insuring
that the overall control system is satisfying safety and performance
specifications. Tools from computer science, such as model-checking
and logic synthesis, combined with design patterns from feedback
control theory provide new approaches to solving these problems. A
major shift is the move from ``design then verify'' to ``specify then
synthesize'' approaches to controller design that allow simultaneous
synthesis of high-performance, robust control laws and
correct-by-construction decision-making logic.
@InProceedings{POPL16p3,
author = {Richard M. Murray},
title = {Synthesis of Reactive Controllers for Hybrid Systems (Keynote)},
booktitle = {Proc.\ POPL},
publisher = {ACM},
pages = {3--3},
doi = {},
year = {2016},
}
Confluences in Programming Languages Research (Keynote)
David Walker
(Princeton University, USA)
A confluence occurs when two rivers flow together; downstream the combined forces gather strength and propel their waters forward with increased vigor. In academic research, according to Varghese, a confluence occurs after some trigger, perhaps a discovery or a change in technology, and brings two previously separate branches of research together. In this talk, I will discuss confluences in programming languages research. Here, confluences often occur when basic research finds application in some important new domain. Two prime examples from my own career involve the confluence of research in type theory and systems security, triggered by new theoretical tools for reasoning about programming language safety, and the confluence of formal methods and networking, triggered by the rise of data centers. These experiences may shed light on what to teach our students and what is next for programming languages research.
@InProceedings{POPL16p4,
author = {David Walker},
title = {Confluences in Programming Languages Research (Keynote)},
booktitle = {Proc.\ POPL},
publisher = {ACM},
pages = {4--4},
doi = {},
year = {2016},
}
proc time: 1.12