Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
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.



Abram Hindle, Christian Bird, Thomas Zimmermann, and Nachiappan Nagappan, Do Topics Make Sense to Managers and Developers?, in Empirical Software Engineering, Springer, December 2015.

He Zhu, Aditya V. Nori, and Suresh Jagannathan, Learning Refinement Types, in International Conference on Functional Programming (ICFP), ACM – Association for Computing Machinery, August 2015.

Klaus v. Gleissenthall, Boris Kopf, and Andrey Rybalchenko, Symbolic Polytopes for Quantitative Interpolation and Verification, in Computer Aided Verification (CAV), Springer, July 2015.

Rui DING, Hucheng ZHOU, Jian-Guang LOU, Hongyu ZHANG, Qingwei LIN, Qiang FU, Dongmei ZHANG, and Tao XIE, Log2: A Cost-Aware Logging Mechanism for Performance Diagnosis, USENIX Annual Technical Conference, July 2015.

Ankush Das, Shuvendu K. Lahiri, Akash Lal, and Yi Li, Angelic Verification: Precise Verification Modulo Unknowns, in Computer Aided Verification (CAV), Springer, July 2015.

More publications ...