Research

Our goal is to explore new ways of programming that are easier, faster, safer.

For safer, we look at systems and formalisms based on types and verification.

For faster, we look at meta-programming techniques including generative programming and reflection to collapse levels of interpretations as well as move between different views of the same program in a way that helps optimizations, understanding and modifications.

For easier, our goal is to enable a greater number of people to manipulate computer programs (static) and processes (dynamic) in a robust way. To this end, we look at combining Machine Learning and Programming Languages to enable the creation of neuro-symbolic systems that can move back and forth between learnable (neural) and interpretable (symbolic) representations of a system.

We are always looking for new application domains in which to evaluate programming techniques.