Programming Languages

Northeastern University’s Programming Research Laboratory (PRL) boasts experts across the entire spectrum of programming language research: compilers, interpreters, language design, run-time systems, static analysis, semantics, and type systems. Its members work on a wide range of programming languages, ranging from expressively typed languages to dynamically typed scripting languages and from purely functional research languages to industrial object-oriented imperative languages. They also reach out to other areas, especially software engineering and the pedagogy of teaching programming.

NUPRL’s researchers aim to improve the lives of working programmers and software engineers but also the ultimate consumers of software. The latter wish to use efficient, reliable, and secure software products, while the former need techniques, tools, and teachings to satisfy the consumers’ demands.

The lab is the source of some of the most important advances in the theory and practice of programming languages. Its members developed and investigated

  • the most widely used proof methods for type soundness, abstraction, and representation independence theorems
  • numerous novel typing mechanisms, e.g., occurrence typing, ownership types, row types
  • higher-order control flow analysis (kCFA)
  • hygienic macro expansion
  • behavioral software contracts
  • reduction semantics, popularly known as “evaluation context” semantics
  • the first fully abstract denotational semantics of a sequential language

More information is available from the PRL web page.