This area studies the design and implementation of computer languages, with the goal of improving both programmer productivity and program quality. The topics of study range from abstract theories of computer languages to practical questions about the use and implementation of high-level languages.
| Gul Agha | distributed systems, parallelism, coordination, real-time behavior |
| Vikram Adve | compilers, software reliability |
| Ralph Johnson | object-oriented design, design patterns, frameworks, software architecture |
| Jose Meseguer | formal executable specification and verification, software architecture |
| David Padua | compilers |
| Grigore Rosu | software, design, semantics and implementation of programming specification languages |
| Sam Kamin | programming languages, software components, program specification and verification |
| Madhusudan Parthasarathy | software engineering, formal methods |
| Constantine Polychronopoulos | parallel programming languages |
| Craig Zilles | compilers, dynamic optimization |
| Mahesh Viswanathan | formal models for system specification |
| Darko Marinov | software reliability, testing, theorem proving, model checking, rich specification languages |
| Sayan Mitra | formal methods, automated reasoning |
| Maria J. Garzaran | compilers, hardware-software interaction |
| Elsa Gunter | software engineering, programming languages, formal methods |
| Mehdi Harandi | AI, information systems, software engineering |