Programming Languages

Subareas

Functional programming languages

Study how the use and adoption of wearable trackers affects self-regulation strategies including self-monitoring, goal setting reinforcement, and behavioral changes such as self-corrective actions.

Gradual typing

Support programming languages that enable programmers to choose which parts of a program undergo compile-time checking for errors and which parts undergo checking at run-time. Gradual typing enables the programmer to choose which “time” is appropriate for each piece of code, and it enables migration of code between run-time and compile-time checking.

Quantum computing

Our research has two thrusts: revisiting the foundations of computing based on advances in quantum mechanics, and revisiting the foundations of quantum mechanics based on a computational resource-aware perspective. The main results include a new model of computation based on reversible deformations that naturally accounts for preservation of information, a precise accounting and analysis of some of the claimed speedups of quantum computing, and a resolution of an important debate on the relevance of the Kochen-Specker quantum-information theorem in a resource-bounded setting.

Parallelism and compiler optimizations

We harness the ubiquity of parallel hardware and its increasing heterogeneity to facilitate the advancement of programming languages that aid the parallel programmer by ensuring safety and by automating compiler decisions related to performance.

Associated centers, groups, and labs

Ready to start your journey at Luddy? Take the next step!