Earl T. BarrView profile
Professor
Earl T. Barr is a Professor of Software Engineering at University College London (UCL), where he heads the System Software Engineering Group and is a member of the Centre for Research on Evolution, Search and Testing (CREST). He received his Ph.D. in Computer Science from the University of California, Davis in 2009. His educational background includes: Ph.D. in Computer Science, 2009, University of California, Davis Barr's research focuses on software engineering, particularly program analysis, automated program repair, and the application of machine learning to code (AI4Code). He is renowned for his work on dual channel analysis, which examines how code combines natural language elements (in identifiers, comments, and stylistic choices) with formal programming language. His research also explores game theory applications to software development processes and how dual channel constraints can improve type inference and code understanding. His recent publications demonstrate a strong trend toward leveraging large language models for code understanding and modification, with particular emphasis on dual channel constraints and natural type inference. His work bridges traditional software engineering techniques with modern AI approaches, showing how machine learning can enhance program analysis and repair while maintaining rigorous theoretical foundations. Notable awards include: ACM SIGSOFT Distinguished Paper Award for Automated Software Transplantation (2015) ACM SIGSOFT Distinguished Paper Award for Learning Natural Coding Conventions (2014) ACM SIGSOFT Distinguished Paper Award for Collecting a Heap of Shapes (2013) Best Paper Award for TrustDavis: A Non-Exploitable Online Reputation System (2005) Barr actively supervises numerous PhD students and postdocs, with current research focusing on AI for code, software security, and program analysis. He collaborates extensively with Santanu Dash of Royal Holloway on dual channel program analysis, and they jointly supervise PhD students through the EPSRC Centre for Doctoral Training in Cyber Security for the Everyday. His work often combines theoretical rigor with practical tool development, resulting in several publicly available research tools that influence both academic research and industry practice. He leads the System Software Engineering Group at UCL, which focuses on developing novel approaches to software engineering challenges at the intersection of human and machine aspects of programming. Current research directions include dual channel analysis for vulnerability detection, game-theoretic approaches to development processes, and AI-assisted software development.














