Everything is becoming programmable: Phones, TVs, tablets, cars, and even watches and glasses! All these programmable devices connect to the Internet to communicate with each other and to access the cloud servers that provide seemingly limitless computation power and storage. There is an exploding demand in application and system software development in order to bring all these devices to life as people continue to discover new ways of using them. Programming Language and Software Engineering research at UCSB addresses the challenges that arise in software development for this modern computing landscape.

Active research topics include: automated software verification techniques for web software; adaptive compiler, runtime, and OS techniques that are guided by dynamically changing program behavior and resource availability; static and dynamic program analysis techniques for modern languages such as JavaScript; new formalisms for modeling and analysis of web services and data-centric workflows; hardware and software techniques for program profiling; program analysis and language design for computer security; novel models and analyses for cloud-based software systems.