Programming Languages and Software Engineering

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.

Affilated Labs: 
ArchLab, SecLab, Information Systems and Engineering Lab, Programming Languages Lab, RACELab, Verification Lab, SysML Lab


Prof. Bultan's research focuses on automated verification techniques and their application to software.

My major interest lies in program optimization, especially from the perspective of input sensitivity, parallelization, and redundant computation elimination. My research involves various important algorithms, which are commonly used in Machine Learning, Deep Learning, and other High-Performance Applications. Moreover, we are interested in enabling automatic adaption of our optimization, through novel designs in programing language, compiler, and runtime system.

My interests include programming languages, static program analysis/verification, program synthesis, and security. More specifically, I want to build automated tools to guarantee the desired behavior of a system in a sound, precise and scalable way. I am also interested in applying static analysis to build and break systems, tackle security problems in smartphone.

Personal photo

Professor Hardekopf's main research area is Programming Languages, investigating programming language design, analysis, and implementation.

Professor Kemmerer's research interests include formal specification and verification of computer systems, system and network security and reliability, programming and specification language design, and software engineering. 

My research interests include programming support and adaptive optimization for cloud computing applications and systems, and the intersection of IoT, data analytics and machine learning, and cloud. Recently, my focus has been on using these technologies to faciliate sustainability science and engineering for the domains of agriculture (SmartFarm) and ecology (WTB). My other interests include projects that mentor, support, and encourage young people from underrepresented groups (especially women!) to consider and pursue computer science.

Jianwen Su

Enterprises rely on data for the operations and processes to realize the operations. Dr. Su’s research aims at techniques for software systems to support enterprise data and processes.