Simon Goldsmith

Learn More
The standard language for describing the asymptotic behavior of algorithms is theoretical computational complexity. We propose a method for describing the asymptotic behavior of programs in practice by measuring their <i>empirical computational complexity</i>. Our method involves running a program on workloads spanning several orders of magnitude in size,(More)
Program Analysis with Regularly Annotated Constraints by John Kodumal Doctor of Philosophy in Computer Science University of California, Berkeley Professor Alexander Aiken, Chair Static program analysis can help improve the quality of large software systems. Unlike many other techniques for finding software defects, a sound static analysis can verify the(More)
Instrumenting programs with code to monitor their dynamic behaviour is a technique as old as computing. Today, most instrumentation is either inserted manually by programmers, which is tedious, or automatically by specialized tools, which are nontrivial to build and monitor particular properties. We introduce Program Trace Query Language (PTQL), a general(More)
Massively scalable web applications encounter a fundamental tension in computing between"performance"and"correctness": performance is often addressed by using a large and therefore distributed machine where programs are multi-threaded and interruptible, whereas correctness requires data invariants to be maintained with certainty. A solution to this problem(More)
  • 1