Software Development, Programming Principles, Tools, and Languages

Improving quality, efficiency, software trustworthiness

Our research in software development spans all aspects of making developers more productive and software more trustworthy. It includes programming-language design, compilers, specification and verification, development environments and tools, runtime environments, formal models of systems, performance monitoring and optimization, security and privacy, software analytics, and quality improvement.

We work on tools, languages, and methodologies to increase dramatically the productivity of software development. We are interested in analysis tools for existing software and in asking questions about how the software of the future should be designed and developed.



Akash Lal and Shaz Qadeer, Applying SMT-Based Verification to Device Drivers (Powering the Static Driver Verifier using Corral), in Foundations of Software Engineering (FSE), November 2014

Akash Lal and Shaz Qadeer, A Program Transformation for Faster Goal-Directed Search, Formal Methods in Computer-Aided Design (FMCAD), October 2014

Sean McDirmid and Jonathan Edwards, Programming with Managed Time, in SPLASH Onward!, ACM, October 2014

Markus N. Rabe, Christoph M. Wintersteiger, Hillel Kugler, Boyan Yordanov, and Youssef Hamadi, Symbolic Approximation of the Bounded Reachability Probability in Large Markov Chains, Springer, September 2014

Chengnian SUN, Haidong Zhang, Jian-Guang LOU, Hongyu ZHANG, Qiang WANG, Siau-Cheng Khoo, and Dongmei ZHANG, Querying Sequential Software Engineering Data, in FSE, Choose..., September 2014

More publications...