The mission of the Center for Programming Systems is to:
- Make scientific discoveries regarding the programming of computer systems
- Educate the next generation of researchers in programming systems
Scientific discoveries regarding computer programming take many forms and lead to improved runtime efficiency of programs, improved guarantees regarding program behavior, and improved programmer productivity. Discoveries in programming systems also lead to insights into the nature of computation in general and computational processes in other areas of scientific inquiry, such as physics and biology.
The members of the center study functional programming languages—that is, languages that treat functions as first-class entities and that circumscribe side effects such as the mutation of state. Indiana University has a long tradition of excellence in this area—for example, with Professors Friedman and Wise’s discovery of lazy evaluation in 1976.
We expect that functional programming will be an emphasis of the center for some time to come, but the scope of the center is not limited to that. The scope of the center is any research involving the programming of computer systems, including the use of programming languages semantics to reason about properties of programs and the design of domain-specific languages to capture domain abstractions and improve performance.
The current research areas of the center include gradual typing, parallelism and compiler optimization, probabilistic programming, quantum computing, homotopy type theory, and dependently typed programming.