skip to main content
keynote

Programming Uncertain <T>hings

Published:25 March 2016Publication History
Skip Abstract Section

Abstract

Innovation flourishes with good abstractions. For instance, codification of the IEEE Floating Point standard in 1985 was critical to the subsequent success of scientific computing. Programming languages currently lack appropriate abstractions for uncertain data. Applications already use estimates from sensors, machine learning, big data, humans, and approximate algorithms, but most programming languages do not help developers address correctness, programmability, and optimization problems due to estimates.

To address these problems, we propose a new programming abstraction called Uncertain<T> embedded into languages, such as C#, C++, Java, Python, and JavaScript. Applications use familiar discrete operations for estimates with Uncertain<T>. Overloaded conditional operators specify hypothesis tests and applications use them to control false positives and negatives. A simple compositional operator expresses domain knowledge. We carefully restrict expressiveness such that we can build a runtime that implements correct statistical reasoning at conditionals. Our system relieves 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.

We encourage the community to develop and use abstractions for estimates.

References

  1. J. Bornholt, T. Mytkowicz, and K. S. McKinley. Uncertain<T>: A first-order type for uncertain data. In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. Bornholt, N. Meng, T. Mytkowicz, and K. S. McKinley. Programming the internet of Uncertain <T>hings. In Sensors to Cloud Architectures Workshop (SCAW), pages 1--7, 2015.Google ScholarGoogle Scholar
  3. T. Mytkowicz and K. S. McKinley. The Uncertain<T> programming language, 2016. URL http://research.microsoft.com/en-us/projects/uncertainty/default.aspx.Google ScholarGoogle Scholar
  4. T. Mytkowicz, J. Bornholt, A. Sampson, D. Tootaghaj, and K. S. McKinley. Uncertain<T>, 2015. URL https://github.com/klipto/Uncertainty.Google ScholarGoogle Scholar
  5. A. Sampson, P. Panchekha, T. Mytkowicz, K. S. McKinley, D. Grossman, and L. Ceze. Expressing and verifying probabilistic assertions. In ACM Conference on Programming Language Design and Implementation (PLDI), 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Programming Uncertain <T>hings

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Article Metrics

      • Downloads (Last 12 months)6
      • Downloads (Last 6 weeks)1

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!