Skip to main content

Program language research at CCIS explores a deeper understanding of programming languages—from purely functional to object-oriented imperative languages—and their use in practice. Researchers at the Programming Research Laboratory (PRL) incorporate elements of design, mathematics, experimental science, and engineering to develop novel techniques for reasoning with and refining code. This interdisciplinary examination of programming aims to improve the lives of programmers, engineers, and software consumers—all while finding ever-more succinct solutions to real-world problems.

Areas of investigation include:

  • Language design
  • Semantics
  • Type systems
  • Small and large program development
  • Programming language implementation
  • Environment tools programming

The PRL is home to some of the world’s most meaningful advances in programming language theory and practice. Through innovative methods of writing and implementing code—and translating new abstractions into practice—the PRL continually refines programming languages as they apply to programmers, consumers, and other areas of computer science. PhD and Masters students engage in interdisciplinary research and investigation, working alongside researchers who understand the value of practical programming language implementation across various hardware and software configurations.

Notable achievements:

  • PRL researchers have developed numerous novel typing mechanisms, including occurrence typing, ownership types, and row types.
  • The PRL developed the first fully abstract denotational semantics of a sequential language.
  • PRL researchers developed Racket, a programming language used by hundreds of schools for teaching computing.
  • The PRL is responsible for the most widely used proof methods for type soundness, abstraction, and representation independence theorems.
  • The PRL developed and deployed the first real-time Java virtual machine.
Research Area - Programming Languages

";