Languages and Tools
The Languages and Tools area studies language design and implementation together with architecture and use of software development tools.
- Prof. Hans-Peter Bischof
- Prof. Matthew Fluet
- Prof. James E. Heliotis
- Prof. Hossein Hojjat
- Prof. Fereydoun Kazemian
- Prof. Rajendra K. Raj
Selected Research Projects
A research effort, joint with the University of Chicago, to design and implement a heterogeneous parallel functional programming language that targets commodity multicore and shared-memory multiprocessors. Our previous results have included novel implicitly-parallel constructs; nested schedulers with composable cancellation; lazy-tree splitting; data-only flattening; GC for multicore NUMA; partial aborts for software transactional memory. Our ongoing work is to extend the language and implementation to declarative mutable state.
An open-source whole-program optimizing compiler for Standard ML that is actively used in industry and academia. Our ongoing work is to explore whole-program compilation of next-generation language features.
Type- and Control-Flow Analysis
A novel program analysis that yields both control-flow (information about first-class functions) and type-flow (information about polymorphic types). Our previous results have demonstrated the mutual benefit and decidability of the two flows and developed an efficient computation of the type- and control-flow analysis for System F. Our ongoing work is to extend the analysis to richer type systems.