Our research goal is to find better ways to make software, and ways to make software better.
Nov 19, 2018 - Design engineers require specialized software, tools, and apps to research and develop ideas for new products and their associated systems.
We're inventing new programming paradigms (Déjà Vu, Espalier) so that end users can create more sophisticated apps themselves, and programmers can build more flexible complex systems with less code.
We're developing a new theory of software design, which focuses not on the question of how to implement, but on the harder question of what to implement (and how to tell in advance if it's likely to be usable).
We've been working for a while on software security for web and mobile applications; we're now beginning a new project on cyberphysical systems.
We continue to support and extend the Alloy modeling language and analyzer, still the only tool to provide fully automatic analysis of software designs that involve rich state.
Our research style is principled (we try to understand things deeply) and practical (we work on real systems). It's also irreverent: we don't pay much attention to all the assumptions that are usually made in the fields of software engineering and programming languages (e.g., that only code matters, that proving things correct means that they work right, or that the most important engineering questions can be answered empirically). We use techniques from formal methods, program analysis and programming languages, and take inspiration from many areas, especially design disciplines beyond software.
Our group consists of postdocs, research staff, doctoral and masters students and undergraduate researchers. If you're interested in finding out more about the group, do contact us!
Research described on this website was supported by a grant from the International Design Center at the Singapore University of Technology and Design (SUTD); by a grant from a collaboration between CSAIL and the Wistron Corporation; and by the National Science Foundation under grants 0541183 (Deep and Scalable Analysis of Software) and 0707612 (CRI: CRD -- Development of Alloy Tools, Technology and Materials).