Research Areas

Productive Development Environments

My work in developing extremely productive and efficient integrated development
environments defines the majority of the way we work. Below are my thoughts on
several areas related to IDEs as outlined on my blog. Over time, improvements
to our parsing algorithms and IDE framework have improved upon the information
presented here, but these concepts were certainly milestones on our path to
success.

Parsing Theory

I've been working with Dr. Terence Parr on developing ANTLR 4, the first
full-context LL(*) parser generator which supports left recursion and performs
well enough to use in applications beyond research. My particular emphasis has
been on performance, measured in execution times, memory usage, and concurrency.
Following the official ANTLR 4 release, I plan to provide ANTLR 4 runtime
libraries for C#, C++, and Go, as well as a highly optimized version of the
Java runtime.

I plan to submit multiple papers related to this work for publication starting in 2013.

Highly Concurrent Databases

This concept developed from a pair of term projects. We proposed a combination
of a database runtime environment and specific development practices which
provide the security application developers demand while vastly exceeding the
performance of current database models. We are currently examining the potential
application of these databases in concurrent and distributed computing environments.