Computers and related technologies are only as good as the instructions given to them by humans. Countless programming languages have been developed, each with their own unique advantages and disadvantages. But as the universe of computation perpetually evolves, programmers need new interfaces to take full advantage of new breakthroughs.
The UChicago CS Programming Languages group studies language design and implementation, from theoretical foundations to practical applications. Faculty and students develop new languages and compilers for parallel computing, quantum computing, and image analysis and visualization, new techniques for reasoning about and verifying programs, and new user interfaces that make programming computers accessible to broader audiences. The group also collaborates with other research areas in the department to construct new ways of preventing, detecting, and correcting flaws in large software systems.