• Publications
  • Influence
VCC: A Practical System for Verifying Concurrent C
TLDR
VCC is an industrial-strength verification environment for low-level concurrent system code written in C. It includes tools for monitoring proof attempts and constructing partial counterexample executions. Expand
  • 557
  • 56
  • PDF
TouchDevelop: programming cloud-connected mobile devices via touchscreen
The world is experiencing a technology shift. In 2011, more touchscreen-based mobile devices like smartphones and tablets will be sold than desktops, laptops, and netbooks combined. In fact, in manyExpand
  • 106
  • 9
  • PDF
Local Verification of Global Invariants in Concurrent Programs
TLDR
We describe a practical method for reasoning about realistic concurrent programs Our method allows global two-state invariants that restrict update of shared state. Expand
  • 76
  • 6
  • PDF
Reachability analysis for annotated code
TLDR
We propose an automated analysis that detects unreachable code in the presence of code annotations, and demonstrate on a case study that it detects a class of errors previously undetected. Expand
  • 26
  • 5
  • PDF
A Precise Yet Efficient Memory Model For C
TLDR
We propose a sound, typed semantics for C that provides the annotational and computational advantages of the typed object model while remaining sound and complete for C. Expand
  • 91
  • 4
  • PDF
TouchDevelop: app development on mobile devices
TLDR
TouchDevelop is a new mobile development environment that enables anyone with a Windows Phone to create new apps directly on the smartphone, without a PC or a traditional keyboard. Expand
  • 24
  • 4
  • PDF
It's alive! continuous feedback in UI programming
TLDR
This paper enables live programming for user interface programming by cleanly separating the rendering and non-rendering aspects of a UI program, allowing the display to be refreshed on a code change without restarting the program. Expand
  • 38
  • 3
  • PDF
The future of teaching programming is on mobile devices
TLDR
We propose that computer programming, and thus the teaching of programming, can and should be done directly on the mobile devices themselves, without the need for a separate PC or laptop to write code. Expand
  • 61
  • 3
  • PDF
E-matching for Fun and Profit
TLDR
Efficient handling of quantifiers is crucial for solving software verification problems. Expand
  • 24
  • 3
  • PDF
Heaps and Data Structures: A Challenge for Automated Provers
TLDR
We propose a family of benchmarks in first-order logic with equality which is scalable, relatively simple to understand, yet closely resembles difficult verification conditions stemming from real-world C code. Expand
  • 20
  • 3
  • PDF