Computer Science
and
Electrical & Computer Engineering
University of Waterloo
Every aspect of computer science depends on programming languages to transform human ideas into a practical, functioning form executable by a computer. There are many different programming languages, each addressing a well-defined purpose across a number of diverse computing environments. The Programming Languages Group (PLG) does research across this full spectrum: language design, parsing, type theory, static/dynamic analysis, code generation and runtime systems. PLG also examines the software life-cycle: development tools, code comprehension/transformation, performance, debugging, and programmer behaviour and productivity. The research goal is to ease transforming human ideas into an executable form by a computer, which can be accomplished at multiple levels in the highly complex software stack.